From f51b76109f6be2bfee3e4eec61ae3f9bc3d7f8e2 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Tue, 9 Jun 2015 14:58:43 +0200 Subject: btrfs-progs: receive: fix minor resource leak Resolves-coverity-id: 1302985 Signed-off-by: David Sterba --- cmds-receive.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'cmds-receive.c') diff --git a/cmds-receive.c b/cmds-receive.c index 114b718..a57f8d9 100644 --- a/cmds-receive.c +++ b/cmds-receive.c @@ -1002,7 +1002,7 @@ int cmd_receive(int argc, char **argv) struct btrfs_receive r; int receive_fd = fileno(stdin); u64 max_errors = 1; - int ret; + int ret = 0; memset(&r, 0, sizeof(r)); r.mnt_fd = -1; @@ -1039,10 +1039,11 @@ int cmd_receive(int argc, char **argv) max_errors = arg_strtou64(optarg); break; case 'm': + free(realmnt); realmnt = strdup(optarg); if (!realmnt) { fprintf(stderr, "ERROR: couldn't allocate realmnt.\n"); - return 1; + goto out; } break; case '?': @@ -1061,12 +1062,15 @@ int cmd_receive(int argc, char **argv) receive_fd = open(fromfile, O_RDONLY | O_NOATIME); if (receive_fd < 0) { fprintf(stderr, "ERROR: failed to open %s\n", fromfile); - return 1; + goto out; } } ret = do_receive(&r, tomnt, realmnt, receive_fd, max_errors); +out: + free(realmnt); + return !!ret; } -- cgit v1.2.1