From patchwork Mon Mar 4 22:39:53 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Sandeen X-Patchwork-Id: 2214761 Return-Path: X-Original-To: patchwork-linux-btrfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id AFB0DDF2F2 for ; Mon, 4 Mar 2013 21:41:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932538Ab3CDVkc (ORCPT ); Mon, 4 Mar 2013 16:40:32 -0500 Received: from nat-pool-rdu.redhat.com ([66.187.233.202]:42487 "EHLO bp-05.lab.msp.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932154Ab3CDVkb (ORCPT ); Mon, 4 Mar 2013 16:40:31 -0500 Received: by bp-05.lab.msp.redhat.com (Postfix, from userid 0) id CB3B71E0AB0; Mon, 4 Mar 2013 16:40:07 -0600 (CST) From: Eric Sandeen To: linux-btrfs@vger.kernel.org Cc: Eric Sandeen Subject: [PATCH 03/14] btrfs-progs: free resources on do_rollback error returns Date: Mon, 4 Mar 2013 16:39:53 -0600 Message-Id: <1362436804-16766-4-git-send-email-sandeen@redhat.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1362436804-16766-1-git-send-email-sandeen@redhat.com> References: <1362436804-16766-1-git-send-email-sandeen@redhat.com> Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org close fd if open, and free allocated memory in buf Signed-off-by: Eric Sandeen --- convert.c | 8 ++++++-- 1 files 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; }