summaryrefslogtreecommitdiffstats
path: root/libnetutils/dhcpclient.c
diff options
context:
space:
mode:
authorChris Dearman <chris@mips.com>2011-06-17 17:07:46 -0700
committerDmitry Shmidt <dimitrysh@google.com>2012-08-08 15:50:03 -0700
commit6ee3ecc03a7cf9118e6a0b2577f15c76244bc408 (patch)
tree2bc6d882fe24ba7ec4cca5db72068fa41fa914d5 /libnetutils/dhcpclient.c
parentff5c802e6ce489a36ac28e3d93b7e8541b3e4d81 (diff)
downloadsystem_core-6ee3ecc03a7cf9118e6a0b2577f15c76244bc408.zip
system_core-6ee3ecc03a7cf9118e6a0b2577f15c76244bc408.tar.gz
system_core-6ee3ecc03a7cf9118e6a0b2577f15c76244bc408.tar.bz2
Decode DHCP netmask option correctly
Signed-off-by: Chris Dearman <chris@mips.com> Change-Id: Ibc288458baf2f75c5b19a46e4c97ee59521cc9a5
Diffstat (limited to 'libnetutils/dhcpclient.c')
-rw-r--r--libnetutils/dhcpclient.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libnetutils/dhcpclient.c b/libnetutils/dhcpclient.c
index b38e258..34500e7 100644
--- a/libnetutils/dhcpclient.c
+++ b/libnetutils/dhcpclient.c
@@ -197,7 +197,11 @@ int decode_dhcp_msg(dhcp_msg *msg, int len, dhcp_info *info)
}
switch(opt) {
case OPT_SUBNET_MASK:
- if (optlen >= 4) info->prefixLength = ipv4NetmaskToPrefixLength(*((uint32_t*)x));
+ if (optlen >= 4) {
+ in_addr_t mask;
+ memcpy(&mask, x, 4);
+ info->prefixLength = ipv4NetmaskToPrefixLength(mask);
+ }
break;
case OPT_GATEWAY:
if (optlen >= 4) memcpy(&info->gateway, x, 4);