mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
[IPV6]: fix lockup via /proc/net/ip6_flowlabel
There's a bug in the seqfile handling for /proc/net/ip6_flowlabel, where, after finding a flowlabel, the code will loop forever not finding any further flowlabels, first traversing the rest of the hash bucket then just looping. This patch fixes the problem by breaking after the hash bucket has been traversed. Note that this bug can cause lockups and oopses, and is trivially invoked by an unpriveleged user. Signed-off-by: James Morris <jmorris@namei.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a27b58fed9
commit
bcd620757d
1 changed files with 2 additions and 0 deletions
|
@ -587,6 +587,8 @@ static struct ip6_flowlabel *ip6fl_get_next(struct seq_file *seq, struct ip6_flo
|
||||||
while (!fl) {
|
while (!fl) {
|
||||||
if (++state->bucket <= FL_HASH_MASK)
|
if (++state->bucket <= FL_HASH_MASK)
|
||||||
fl = fl_ht[state->bucket];
|
fl = fl_ht[state->bucket];
|
||||||
|
else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return fl;
|
return fl;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue