diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-25 14:25:52 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-25 14:26:36 +0200 |
commit | f11c6989ba40f6bed8c4b4f0b6b7578aba3a63f9 (patch) | |
tree | 20c54a24c76325e62828f07781643a430104ad6e | |
parent | f9beeb22e2a4128ed85a8dc267d0823e5cfd3f47 (diff) | |
download | busybox-w32-f11c6989ba40f6bed8c4b4f0b6b7578aba3a63f9.tar.gz busybox-w32-f11c6989ba40f6bed8c4b4f0b6b7578aba3a63f9.tar.bz2 busybox-w32-f11c6989ba40f6bed8c4b4f0b6b7578aba3a63f9.zip |
udhcpc: check read of overload option data byte to be within packet
function old new delta
udhcp_get_option 220 225 +5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | networking/udhcp/common.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c index 589bcd674..1aaf5255c 100644 --- a/networking/udhcp/common.c +++ b/networking/udhcp/common.c | |||
@@ -268,7 +268,8 @@ uint8_t* FAST_FUNC udhcp_get_option(struct dhcp_packet *packet, int code) | |||
268 | } | 268 | } |
269 | 269 | ||
270 | if (optionptr[OPT_CODE] == DHCP_OPTION_OVERLOAD) { | 270 | if (optionptr[OPT_CODE] == DHCP_OPTION_OVERLOAD) { |
271 | overload |= optionptr[OPT_DATA]; | 271 | if (len >= 3) |
272 | overload |= optionptr[OPT_DATA]; | ||
272 | /* fall through */ | 273 | /* fall through */ |
273 | } | 274 | } |
274 | optionptr += len; | 275 | optionptr += len; |