Revert r349400. It has uintended effects.
Reported by: christos@NetBSD.org X-MFC with: r349400.
This commit is contained in:
parent
8136db2894
commit
a9a131902d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=349567
@ -1732,22 +1732,24 @@ ipf_pr_ipv4hdr(fin)
|
||||
|
||||
fi->fi_flx |= FI_FRAG;
|
||||
off &= IP_OFFMASK;
|
||||
fin->fin_flx |= FI_FRAGBODY;
|
||||
off <<= 3;
|
||||
if ((off + fin->fin_dlen > 65535) ||
|
||||
(fin->fin_dlen == 0) ||
|
||||
((morefrag != 0) && ((fin->fin_dlen & 7) != 0))) {
|
||||
/*
|
||||
* The length of the packet, starting at its
|
||||
* offset cannot exceed 65535 (0xffff) as the
|
||||
* length of an IP packet is only 16 bits.
|
||||
*
|
||||
* Any fragment that isn't the last fragment
|
||||
* must have a length greater than 0 and it
|
||||
* must be an even multiple of 8.
|
||||
*/
|
||||
fi->fi_flx |= FI_BAD;
|
||||
DT1(ipf_fi_bad_fragbody_gt_65535, fr_info_t *, fin);
|
||||
if (off != 0) {
|
||||
fin->fin_flx |= FI_FRAGBODY;
|
||||
off <<= 3;
|
||||
if ((off + fin->fin_dlen > 65535) ||
|
||||
(fin->fin_dlen == 0) ||
|
||||
((morefrag != 0) && ((fin->fin_dlen & 7) != 0))) {
|
||||
/*
|
||||
* The length of the packet, starting at its
|
||||
* offset cannot exceed 65535 (0xffff) as the
|
||||
* length of an IP packet is only 16 bits.
|
||||
*
|
||||
* Any fragment that isn't the last fragment
|
||||
* must have a length greater than 0 and it
|
||||
* must be an even multiple of 8.
|
||||
*/
|
||||
fi->fi_flx |= FI_BAD;
|
||||
DT1(ipf_fi_bad_fragbody_gt_65535, fr_info_t *, fin);
|
||||
}
|
||||
}
|
||||
}
|
||||
fin->fin_off = off;
|
||||
|
Loading…
Reference in New Issue
Block a user