From: Nicolas C Date: Thu, 16 Jul 2015 09:50:50 +0000 (+0200) Subject: dhcp secs is a short X-Git-Tag: release_3_0_10~331 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45ef223fc36fac5747da826aeb527690aed4a2b0;p=thirdparty%2Ffreeradius-server.git dhcp secs is a short Properly encode DHCP field "secs" (using htons instead of htonl). Also I think in this case using "vp_short" is more correct than "vp_integer" for a short (even though it still works with "vp_integer"). --- diff --git a/src/modules/proto_dhcp/dhcp.c b/src/modules/proto_dhcp/dhcp.c index 60c4053c170..6db0bfe06a0 100644 --- a/src/modules/proto_dhcp/dhcp.c +++ b/src/modules/proto_dhcp/dhcp.c @@ -1367,6 +1367,7 @@ int fr_dhcp_encode(RADIUS_PACKET *packet) vp_cursor_t cursor; VALUE_PAIR *vp; uint32_t lvalue; + uint16_t svalue; size_t dhcp_size; ssize_t len; #ifndef NDEBUG @@ -1476,15 +1477,15 @@ int fr_dhcp_encode(RADIUS_PACKET *packet) /* DHCP-Number-of-Seconds */ if ((vp = fr_pair_find_by_num(packet->vps, 261, DHCP_MAGIC_VENDOR, TAG_ANY))) { - lvalue = htonl(vp->vp_integer); - memcpy(p, &lvalue, 2); + svalue = htons(vp->vp_short); + memcpy(p, &svalue, 2); } p += 2; /* DHCP-Flags */ if ((vp = fr_pair_find_by_num(packet->vps, 262, DHCP_MAGIC_VENDOR, TAG_ANY))) { - lvalue = htons(vp->vp_integer); - memcpy(p, &lvalue, 2); + svalue = htons(vp->vp_short); + memcpy(p, &svalue, 2); } p += 2;