File 0001-btrfs-progs-fix-double-free-during-scanning.patch of Package btrfsprogs

From 1491d246c427f4fe13521b13fab64c91459ffd9e Mon Sep 17 00:00:00 2001
From: David Sterba <dsterba@suse.com>
Date: Fri, 2 Oct 2015 17:21:12 +0200
Subject: [PATCH] btrfs-progs: fix double free during scanning

If there are different devices mounted to the same directory we can run
into double free issue in the scanning code and this can lead to a
crash. The dev_info_arg buffer allocation get_fs_info might be skipped,
eg. if the FS_INFO ioctl fails due to EPERM in older kernels. Reset the
pointer before each loop starts.

Signed-off-by: David Sterba <dsterba@suse.com>
---
 cmds-filesystem.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/cmds-filesystem.c b/cmds-filesystem.c
index 09cb37d9f372..02def40ab3f5 100644
--- a/cmds-filesystem.c
+++ b/cmds-filesystem.c
@@ -481,6 +481,7 @@ static int btrfs_scan_kernel(void *search, unsigned unit_mode)
 		if (search && !match_search_item_kernel(fs_info_arg.fsid,
 					mnt->mnt_dir, label, search)) {
 			kfree(dev_info_arg);
+			dev_info_arg = NULL;
 			continue;
 		}
 
@@ -496,6 +497,7 @@ static int btrfs_scan_kernel(void *search, unsigned unit_mode)
 		if (fd != -1)
 			close(fd);
 		kfree(dev_info_arg);
+		dev_info_arg = NULL;
 	}
 
 out:
-- 
2.6.2

openSUSE Build Service is sponsored by