From c74beb90eaf2ddedfcabc35cf81bac580f5aa9b6 Mon Sep 17 00:00:00 2001 From: Eric Sandeen Date: Mon, 4 Mar 2013 16:39:53 -0600 Subject: [PATCH] btrfs-progs: free resources on do_rollback error returns close fd if open, and free allocated memory in buf Signed-off-by: Eric Sandeen --- convert.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/convert.c b/convert.c index 4a75895..76a1076 100644 --- a/convert.c +++ b/convert.c @@ -2455,7 +2455,7 @@ fail: int do_rollback(const char *devname, int force) { - int fd; + int fd = -1; int ret; int i; struct btrfs_root *root; @@ -2471,7 +2471,7 @@ int do_rollback(const char *devname, int force) struct btrfs_key key; struct btrfs_path path; struct extent_io_tree io_tree; - char *buf; + char *buf = NULL; char *name; u64 bytenr; u64 num_bytes; @@ -2751,7 +2751,11 @@ next_sector: extent_io_tree_cleanup(&io_tree); printf("rollback complete.\n"); return 0; + fail: + if (fd != -1) + close(fd); + free(buf); fprintf(stderr, "rollback aborted.\n"); return -1; } -- 2.7.4