diff options
author | Eric Sandeen <sandeen@redhat.com> | 2013-12-12 15:34:16 +0800 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-01-31 08:22:17 -0800 |
commit | fd777c3695727e03b0ba46e5577240bee86024b0 (patch) | |
tree | 5c410f0d04040c626dd4995cdac3a0e90a5e4cd9 /cmds-scrub.c | |
parent | 70749a77fe2b1c69d2ebe732de0d0ae53b967171 (diff) | |
download | btrfs-progs-fd777c3695727e03b0ba46e5577240bee86024b0.tar.gz |
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 <sandeen@redhat.com>
Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'cmds-scrub.c')
-rw-r--r-- | cmds-scrub.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/cmds-scrub.c b/cmds-scrub.c index 31486df..230a641 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) |