From 0971a0b9b9ab95795bb6a1619f685574445e4006 Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Wed, 26 Mar 2008 16:49:40 -0700 Subject: [PATCH] --- yaml --- r: 90408 b: refs/heads/master c: a233352506be35aafd49c0ba8c88ca96ebde1c3d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv6/route.c | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index d4aceb55f22c..c1e5716b54b3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b674e82b73a61844967b32e1b4ecaf8eb9d1805 +refs/heads/master: a233352506be35aafd49c0ba8c88ca96ebde1c3d diff --git a/trunk/net/ipv6/route.c b/trunk/net/ipv6/route.c index ac4428371432..cd82b6db35ff 100644 --- a/trunk/net/ipv6/route.c +++ b/trunk/net/ipv6/route.c @@ -2390,10 +2390,18 @@ static int ipv6_route_show(struct seq_file *m, void *v) static int ipv6_route_open(struct inode *inode, struct file *file) { + int err; struct net *net = get_proc_net(inode); if (!net) return -ENXIO; - return single_open(file, ipv6_route_show, net); + + err = single_open(file, ipv6_route_show, net); + if (err < 0) { + put_net(net); + return err; + } + + return 0; } static int ipv6_route_release(struct inode *inode, struct file *file) @@ -2429,8 +2437,18 @@ static int rt6_stats_seq_show(struct seq_file *seq, void *v) static int rt6_stats_seq_open(struct inode *inode, struct file *file) { + int err; struct net *net = get_proc_net(inode); - return single_open(file, rt6_stats_seq_show, net); + if (!net) + return -ENXIO; + + err = single_open(file, rt6_stats_seq_show, net); + if (err < 0) { + put_net(net); + return err; + } + + return 0; } static int rt6_stats_seq_release(struct inode *inode, struct file *file)