X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=blobdiff_plain;f=libeap%2Fsrc%2Fdrivers%2Fdriver_privsep.c;fp=libeap%2Fsrc%2Fdrivers%2Fdriver_privsep.c;h=43d41937d474c60ff467732dea7dd07dc6a0d5df;hp=1f1676a20ac5868f68b4e13f66a360da53c70593;hb=d1dd9aae6741e74f20bfc35e1db598652680279d;hpb=bd3bd69af16ab99706ba70ed11a3e291e968e5c6 diff --git a/libeap/src/drivers/driver_privsep.c b/libeap/src/drivers/driver_privsep.c index 1f1676a..43d4193 100644 --- a/libeap/src/drivers/driver_privsep.c +++ b/libeap/src/drivers/driver_privsep.c @@ -161,11 +161,11 @@ wpa_driver_privsep_get_scan_results2(void *priv) return NULL; } - while (results->num < (size_t) num && pos + sizeof(int) < end) { + while (results->num < (size_t) num && end - pos > (int) sizeof(int)) { int len; os_memcpy(&len, pos, sizeof(int)); pos += sizeof(int); - if (len < 0 || len > 10000 || pos + len > end) + if (len < 0 || len > 10000 || len > end - pos) break; r = os_malloc(len);