dhcpv6: handle realloc failure
authorDavid Härdeman <[email protected]>
Sun, 23 Nov 2025 14:12:01 +0000 (15:12 +0100)
committerÁlvaro Fernández Rojas <[email protected]>
Thu, 27 Nov 2025 07:24:50 +0000 (08:24 +0100)
Another realloc failure case.

Signed-off-by: David Härdeman <[email protected]>
Link: https://github.com/openwrt/odhcpd/pull/320
Signed-off-by: Álvaro Fernández Rojas <[email protected]>
src/dhcpv6-ia.c

index b884f9a36d0c944737caa8ca748bdcda024afd9a..32b652dd38df8d07d5f808584997111632867043 100644 (file)
@@ -1236,8 +1236,9 @@ proceed:
                                    hdr->msg_type == DHCPV6_MSG_REQUEST ||
                                    hdr->msg_type == DHCPV6_MSG_REBIND)) {
                                if ((!(a->flags & OAF_STATIC) || !a->hostname) && hostname_len > 0) {
-                                       a->hostname = realloc(a->hostname, hostname_len + 1);
-                                       if (a->hostname) {
+                                       char *hostname = realloc(a->hostname, hostname_len + 1);
+                                       if (hostname) {
+                                               a->hostname = hostname;
                                                memcpy(a->hostname, hostname, hostname_len);
                                                a->hostname[hostname_len] = 0;