diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2007-12-16 17:04:02 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:58:19 -0500 |
commit | 1bf40954cf232a043a49623cf251f787c1871e64 (patch) | |
tree | 86b6a26e04f102091e6df0d59c6ad85cd5e5ff5e /net/packet/af_packet.c | |
parent | 2d4d29802ff76de5af6123ef26c24ab512181223 (diff) |
[PACKET]: Fix /proc/net/packet crash due to bogus private pointer
The seq_open_net patch changed the meaning of seq->private.
Unfortunately it missed two spots in AF_PACKET, which still
used the old way of dereferencing seq->private, thus causing
weird and wonderful crashes when reading /proc/net/packet.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet/af_packet.c')
-rw-r--r-- | net/packet/af_packet.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 485af5691d64..43e49f46ad43 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -1878,7 +1878,7 @@ static void *packet_seq_start(struct seq_file *seq, loff_t *pos) | |||
1878 | 1878 | ||
1879 | static void *packet_seq_next(struct seq_file *seq, void *v, loff_t *pos) | 1879 | static void *packet_seq_next(struct seq_file *seq, void *v, loff_t *pos) |
1880 | { | 1880 | { |
1881 | struct net *net = seq->private; | 1881 | struct net *net = seq_file_net(seq); |
1882 | ++*pos; | 1882 | ++*pos; |
1883 | return (v == SEQ_START_TOKEN) | 1883 | return (v == SEQ_START_TOKEN) |
1884 | ? sk_head(&net->packet.sklist) | 1884 | ? sk_head(&net->packet.sklist) |
@@ -1887,7 +1887,7 @@ static void *packet_seq_next(struct seq_file *seq, void *v, loff_t *pos) | |||
1887 | 1887 | ||
1888 | static void packet_seq_stop(struct seq_file *seq, void *v) | 1888 | static void packet_seq_stop(struct seq_file *seq, void *v) |
1889 | { | 1889 | { |
1890 | struct net *net = seq->private; | 1890 | struct net *net = seq_file_net(seq); |
1891 | read_unlock(&net->packet.sklist_lock); | 1891 | read_unlock(&net->packet.sklist_lock); |
1892 | } | 1892 | } |
1893 | 1893 | ||