From: André Goddard Rosa Date: Tue, 23 Feb 2010 07:04:28 +0000 (-0300) Subject: mqueue: fix mq_open() file descriptor leak on user-space processes X-Git-Tag: firefly_0821_release~10186^2~1994 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=cdaab88937d2dbbeb27e4b837abf5d3206ddc1ec;p=firefly-linux-kernel-4.4.55.git mqueue: fix mq_open() file descriptor leak on user-space processes commit 4294a8eedb17bbc45e1e7447c2a4d05332943248 upstream. We leak fd on lookup_one_len() failure Signed-off-by: André Goddard Rosa Signed-off-by: Al Viro Signed-off-by: Greg Kroah-Hartman --- diff --git a/ipc/mqueue.c b/ipc/mqueue.c index ee9d69707c0a..d01bc14a9b37 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -706,7 +706,7 @@ SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, mode_t, mode, dentry = lookup_one_len(name, ipc_ns->mq_mnt->mnt_root, strlen(name)); if (IS_ERR(dentry)) { error = PTR_ERR(dentry); - goto out_err; + goto out_putfd; } mntget(ipc_ns->mq_mnt); @@ -744,7 +744,6 @@ out: mntput(ipc_ns->mq_mnt); out_putfd: put_unused_fd(fd); -out_err: fd = error; out_upsem: mutex_unlock(&ipc_ns->mq_mnt->mnt_root->d_inode->i_mutex);