Message ID | 1363984604-17739-1-git-send-email-khoroshilov@ispras.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Thanks, applying.--b. On Sat, Mar 23, 2013 at 12:36:44AM +0400, Alexey Khoroshilov wrote: > If kmalloc() fails in cache_open(), module cd->owner left locked. > The patch adds module_put(cd->owner) on this path. > > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> > --- > net/sunrpc/cache.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c > index 25d58e76..1d3c514 100644 > --- a/net/sunrpc/cache.c > +++ b/net/sunrpc/cache.c > @@ -986,8 +986,10 @@ static int cache_open(struct inode *inode, struct file *filp, > nonseekable_open(inode, filp); > if (filp->f_mode & FMODE_READ) { > rp = kmalloc(sizeof(*rp), GFP_KERNEL); > - if (!rp) > + if (!rp) { > + module_put(cd->owner); > return -ENOMEM; > + } > rp->offset = 0; > rp->q.reader = 1; > atomic_inc(&cd->readers); > -- > 1.7.9.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 25d58e76..1d3c514 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c @@ -986,8 +986,10 @@ static int cache_open(struct inode *inode, struct file *filp, nonseekable_open(inode, filp); if (filp->f_mode & FMODE_READ) { rp = kmalloc(sizeof(*rp), GFP_KERNEL); - if (!rp) + if (!rp) { + module_put(cd->owner); return -ENOMEM; + } rp->offset = 0; rp->q.reader = 1; atomic_inc(&cd->readers);
If kmalloc() fails in cache_open(), module cd->owner left locked. The patch adds module_put(cd->owner) on this path. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> --- net/sunrpc/cache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)