uprobes/tracing: Fix dentry/mount leak in create_trace_uprobe()
create_trace_uprobe() does kern_path() to find ->d_inode, but forgets to do path_put(). We can do this right after igrab(). Signed-off-by: Oleg Nesterov <oleg@redhat.com> Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
This commit is contained in:
parent
e8440c1458
commit
84d7ed799f
|
@ -253,16 +253,18 @@ static int create_trace_uprobe(int argc, char **argv)
|
||||||
if (ret)
|
if (ret)
|
||||||
goto fail_address_parse;
|
goto fail_address_parse;
|
||||||
|
|
||||||
ret = kstrtoul(arg, 0, &offset);
|
|
||||||
if (ret)
|
|
||||||
goto fail_address_parse;
|
|
||||||
|
|
||||||
inode = igrab(path.dentry->d_inode);
|
inode = igrab(path.dentry->d_inode);
|
||||||
|
path_put(&path);
|
||||||
|
|
||||||
if (!S_ISREG(inode->i_mode)) {
|
if (!S_ISREG(inode->i_mode)) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto fail_address_parse;
|
goto fail_address_parse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = kstrtoul(arg, 0, &offset);
|
||||||
|
if (ret)
|
||||||
|
goto fail_address_parse;
|
||||||
|
|
||||||
argc -= 2;
|
argc -= 2;
|
||||||
argv += 2;
|
argv += 2;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue