From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Sun, 16 Nov 2014 19:49:39 +0100 The iput() function was called in three cases by the create_trace_uprobe() function during error handling even if the passed variable contained still a null pointer. This implementation detail could be improved by the introduction of another jump label. Suggested-by: Julia Lawall <julia.lawall@xxxxxxx> Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- kernel/trace/trace_uprobe.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c index ec002c0..a0288f2 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c @@ -434,19 +434,24 @@ static int create_trace_uprobe(int argc, char **argv) arg = strchr(argv[1], ':'); if (!arg) { ret = -EINVAL; - goto fail_address_parse; + goto fail_address_parse2; } *arg++ = '\0'; filename = argv[1]; ret = kern_path(filename, LOOKUP_FOLLOW, &path); if (ret) - goto fail_address_parse; + goto fail_address_parse2; inode = igrab(path.dentry->d_inode); path_put(&path); - if (!inode || !S_ISREG(inode->i_mode)) { + if (!inode) { + ret = -EINVAL; + goto fail_address_parse2; + } + + if (!S_ISREG(inode->i_mode)) { ret = -EINVAL; goto fail_address_parse; } @@ -554,6 +559,7 @@ error: fail_address_parse: iput(inode); +fail_address_parse2: pr_info("Failed to parse address or file.\n"); return ret; -- 2.1.3 -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html