ip4_reass: fixed bug #51596 (Insufficient overlap check)

(cherry picked from commit 500598658d)
This commit is contained in:
goldsimon 2017-07-28 10:11:45 +02:00
parent a2ac9b045a
commit 9b19266e3d

View File

@ -381,6 +381,12 @@ ip_reass_chain_frag_into_datagram_and_validate(struct ip_reassdata *ipr, struct
#endif /* IP_REASS_CHECK_OVERLAP */ #endif /* IP_REASS_CHECK_OVERLAP */
iprh_prev->next_pbuf = new_p; iprh_prev->next_pbuf = new_p;
} else { } else {
#if IP_REASS_CHECK_OVERLAP
if (iprh->end > iprh_tmp->start) {
/* fragment overlaps with following, throw away */
goto freepbuf;
}
#endif /* IP_REASS_CHECK_OVERLAP */
/* fragment with the lowest offset */ /* fragment with the lowest offset */
ipr->p = new_p; ipr->p = new_p;
} }