From: Mikael Magnusson Date: Wed, 11 Aug 2021 15:04:54 +0000 (+0200) Subject: dhcpv4: fix uninitialized hostname in some ubus events X-Git-Url: http://git.openwrt.org/?p=project%2Fodhcpd.git;a=commitdiff_plain;h=01b4e6046f10e21809c3f380f2d33bf3fe59698d dhcpv4: fix uninitialized hostname in some ubus events The hostname buffer is uninitialized if the client doesn't provide DHCPV4_OPT_HOSTNAME. Use hostname from the assignment which is present if a static lease contains the hostname or if the client provides one, and the hostname is valid. It's also used in the ubus ipv4leases method. Signed-off-by: Mikael Magnusson --- diff --git a/src/dhcpv4.c b/src/dhcpv4.c index c3d16f5..a3b0e33 100644 --- a/src/dhcpv4.c +++ b/src/dhcpv4.c @@ -758,7 +758,7 @@ void dhcpv4_handle_msg(void *addr, void *data, size_t len, #ifdef WITH_UBUS if (reqmsg == DHCPV4_MSG_RELEASE) ubus_bcast_dhcp_event("dhcp.release", req->chaddr, req->hlen, - &req->ciaddr, hostname, iface->ifname); + &req->ciaddr, a ? a->hostname : NULL, iface->ifname); #endif if (reqmsg == DHCPV4_MSG_DECLINE || reqmsg == DHCPV4_MSG_RELEASE) return; @@ -915,7 +915,7 @@ void dhcpv4_handle_msg(void *addr, void *data, size_t len, #ifdef WITH_UBUS if (msg == DHCPV4_MSG_ACK) ubus_bcast_dhcp_event("dhcp.ack", req->chaddr, req->hlen, &reply.yiaddr, - hostname, iface->ifname); + a ? a->hostname : NULL, iface->ifname); #endif }