diff options
-rw-r--r-- | networking/udhcp/dhcpc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 510c3a1d0..5d3291b8c 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c | |||
@@ -1134,8 +1134,11 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) | |||
1134 | client_config.no_default_options = 1; | 1134 | client_config.no_default_options = 1; |
1135 | while (list_O) { | 1135 | while (list_O) { |
1136 | char *optstr = llist_pop(&list_O); | 1136 | char *optstr = llist_pop(&list_O); |
1137 | unsigned n = udhcp_option_idx(optstr); | 1137 | unsigned n = bb_strtou(optstr, NULL, 0); |
1138 | n = dhcp_optflags[n].code; | 1138 | if (errno || n > 254) { |
1139 | n = udhcp_option_idx(optstr); | ||
1140 | n = dhcp_optflags[n].code; | ||
1141 | } | ||
1139 | client_config.opt_mask[n >> 3] |= 1 << (n & 7); | 1142 | client_config.opt_mask[n >> 3] |= 1 << (n & 7); |
1140 | } | 1143 | } |
1141 | while (list_x) { | 1144 | while (list_x) { |