mirror of
git://git.code.sf.net/p/xtables-addons/xtables-addons
synced 2025-09-07 05:05:12 +02:00
ipp2p: try to address underflows
Report by: Christian Blum <chrblum@users.sourceforge.net> "I have found that they panic in an interrupt within xt_ipp2p, function search_all_gnu(). It's a bounds checking problem; when I add this [a check for plen >= 65535] at the beginning [of the function] the servers run fine (very similar to find_all_kazaa())."
This commit is contained in:
@@ -844,7 +844,13 @@ ipp2p_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
if (tcph->rst) return 0; /* if RST bit is set bail out */
|
||||
|
||||
haystack += tcph->doff * 4; /* get TCP-Header-Size */
|
||||
hlen -= tcph->doff * 4;
|
||||
if (tcph->doff * 4 > hlen) {
|
||||
if (info->debug)
|
||||
pr_info("TCP header indicated packet larger than it is\n");
|
||||
hlen = 0;
|
||||
} else {
|
||||
hlen -= tcph->doff * 4;
|
||||
}
|
||||
while (matchlist[i].command) {
|
||||
if ((info->cmd & matchlist[i].command) == matchlist[i].command &&
|
||||
hlen > matchlist[i].packet_len)
|
||||
|
Reference in New Issue
Block a user