goto err;
}
sz = IPICMPSZ + 8;
- while (sz+1 < pktsz) {
+ while (sz+8 <= pktsz) {
osz = packet[sz+1];
if(osz <= 0) {
ipriv->stats[OptlenErrs6]++;
}
unsp = (ipcmp(p->src, v6Unspecified) == 0);
sz = IPICMPSZ + 8;
- while (sz+1 < pktsz) {
+ while (sz+8 <= pktsz) {
osz = packet[sz+1];
if(osz <= 0 ||
(unsp && packet[sz] == SRC_LLADDR)) {