From patchwork Sun Mar 31 10:36:37 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wang Shilong X-Patchwork-Id: 2368341 Return-Path: X-Original-To: patchwork-linux-btrfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 6CDFD3FD40 for ; Sun, 31 Mar 2013 10:36:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753952Ab3CaKgn (ORCPT ); Sun, 31 Mar 2013 06:36:43 -0400 Received: from mail-pb0-f50.google.com ([209.85.160.50]:59263 "EHLO mail-pb0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753690Ab3CaKgm (ORCPT ); Sun, 31 Mar 2013 06:36:42 -0400 Received: by mail-pb0-f50.google.com with SMTP id jt11so789428pbb.9 for ; Sun, 31 Mar 2013 03:36:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:mime-version :content-type:content-transfer-encoding; bh=uU92jE8eF8rTIJDtM2bcHueAHbhPt0bqo8Md+DI7NE4=; b=rzdcB6O34fkQRXVZp4Udfm5F8P5iLWCudc2LUlEVuYJmTEproUWWx+bGW6pCOxH18U 1KHpWiJMpa3/huIZL3WmOeph6utH224zY9/enlEPIsafLWtWlVCRaVI1J4egvZwzr26j Fkh36tZUoa22L1lU/ffrIKmntuEfVSLi+tJrCtOeFWzYt/2paFAcV0BkVbHKe0AYDhkn ZEaZ8YTgmL4oLP0yGtpUxjCZytVQ99GR+oyLxhIfLYcspVnjKTBl+wj43yRjVyp3kq4c gOyzs5guSQZx1WKERT0M+4MqltpyubTztL8wA1BgnzTALk1xbNbArSSAw+G0stFHKP10 lSzw== X-Received: by 10.68.241.102 with SMTP id wh6mr13011615pbc.150.1364726201992; Sun, 31 Mar 2013 03:36:41 -0700 (PDT) Received: from localhost.localdomain.localdomain ([112.3.240.238]) by mx.google.com with ESMTPS id u9sm10765293paf.22.2013.03.31.03.36.39 (version=TLSv1 cipher=RC4-SHA bits=128/128); Sun, 31 Mar 2013 03:36:41 -0700 (PDT) From: Wang Shilong To: linux-btrfs@vger.kernel.org Cc: sensille@gmx.net, wangsl-fnst@cn.fujitsu.com, list.btrfs@jan-o-sch.net Subject: [PATCH V2] Btrfs: fix double free in the iterate_extent_inodes() Date: Sun, 31 Mar 2013 18:36:37 +0800 Message-Id: <1364726197-1879-1-git-send-email-wangshilong1991@gmail.com> X-Mailer: git-send-email 1.7.11.7 MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org From: Wang Shilong If btrfs_find_all_roots() fails, 'roots' has been freed or 'roots' fails to allocate. We don't need to free it outside btrfs_find_all_roots() again.Fix it. Signed-off-by: Wang Shilong --- Changelog: V1->v2: remove reduplicate code that set 'roots' to be NULL --- fs/btrfs/backref.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index 5ff46ee..cbb7108 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -1510,11 +1510,9 @@ int iterate_extent_inodes(struct btrfs_fs_info *fs_info, iterate, ctx); } ulist_free(roots); - roots = NULL; } free_leaf_list(refs); - ulist_free(roots); out: if (!search_commit_root) { btrfs_put_tree_mod_seq(fs_info, &tree_mod_seq_elem);