From fd777c3695727e03b0ba46e5577240bee86024b0 Mon Sep 17 00:00:00 2001 From: Eric Sandeen Date: Thu, 12 Dec 2013 15:34:16 +0800 Subject: [PATCH] btrfs-progs: fix resource leak in scrub_start() Resolves-Coverity-CID: 1125934 Resolves-Coverity-CID: 1125935 Resolves-Coverity-CID: 1125936 Signed-off-by: Eric Sandeen Signed-off-by: Wang Shilong Signed-off-by: David Sterba Signed-off-by: Chris Mason --- cmds-scrub.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmds-scrub.c b/cmds-scrub.c index 31486df6..230a641f 100644 --- a/cmds-scrub.c +++ b/cmds-scrub.c @@ -1097,6 +1097,7 @@ static int scrub_start(int argc, char **argv, int resume) u64 devid; DIR *dirstream = NULL; int force = 0; + int nothing_to_resume = 0; optind = 1; while ((c = getopt(argc, argv, "BdqrRc:n:f")) != -1) { @@ -1265,7 +1266,8 @@ static int scrub_start(int argc, char **argv, int resume) if (!do_quiet) printf("scrub: nothing to resume for %s, fsid %s\n", path, fsid); - return 2; + nothing_to_resume = 1; + goto out; } ret = prg_fd = socket(AF_UNIX, SOCK_STREAM, 0); @@ -1501,6 +1503,8 @@ out: } close_file_or_dir(fdmnt, dirstream); + if (nothing_to_resume) + return 2; if (err) return 1; if (e_correctable)