Accepting request 41263 from filesystems
Copy from filesystems/btrfsprogs based on submit request 41263 from user dirkmueller OBS-URL: https://build.opensuse.org/request/show/41263 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/btrfsprogs?expand=0&rev=12
This commit is contained in:
parent
bfb5ccbf1f
commit
5dbef1fdf6
39
0005-fix-use-after-free.patch
Normal file
39
0005-fix-use-after-free.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From: Jeff Mahoney <jeffm@suse.com>
|
||||||
|
Subject: btrfsprogs: Fix use after free in close_ctree
|
||||||
|
References: bnc#603620
|
||||||
|
|
||||||
|
After the roots are closed, root is freed. Yet close_ctree continues
|
||||||
|
to use it. It works generally because no new memory is allocated in
|
||||||
|
the interim, but with glibc malloc perturbing enabled, it crashes
|
||||||
|
every time. This is because root->fs_info points to garbage.
|
||||||
|
|
||||||
|
This patch uses the already-cached fs_info variable for the rest of
|
||||||
|
the accesses and fixes the crash.
|
||||||
|
|
||||||
|
|
||||||
|
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
|
||||||
|
---
|
||||||
|
disk-io.c | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
--- a/disk-io.c
|
||||||
|
+++ b/disk-io.c
|
||||||
|
@@ -971,13 +971,13 @@ int close_ctree(struct btrfs_root *root)
|
||||||
|
if (fs_info->csum_root->node)
|
||||||
|
free_extent_buffer(fs_info->csum_root->node);
|
||||||
|
|
||||||
|
- if (root->fs_info->log_root_tree) {
|
||||||
|
- if (root->fs_info->log_root_tree->node)
|
||||||
|
- free_extent_buffer(root->fs_info->log_root_tree->node);
|
||||||
|
- free(root->fs_info->log_root_tree);
|
||||||
|
+ if (fs_info->log_root_tree) {
|
||||||
|
+ if (fs_info->log_root_tree->node)
|
||||||
|
+ free_extent_buffer(fs_info->log_root_tree->node);
|
||||||
|
+ free(fs_info->log_root_tree);
|
||||||
|
}
|
||||||
|
|
||||||
|
- close_all_devices(root->fs_info);
|
||||||
|
+ close_all_devices(fs_info);
|
||||||
|
extent_io_tree_cleanup(&fs_info->extent_cache);
|
||||||
|
extent_io_tree_cleanup(&fs_info->free_space_cache);
|
||||||
|
extent_io_tree_cleanup(&fs_info->block_group_cache);
|
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 26 17:00:46 CEST 2010 - dmueller@suse.de
|
||||||
|
|
||||||
|
- fix crash on creating filesystems (bnc#603620)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 7 15:05:11 CEST 2010 - dmueller@suse.de
|
||||||
|
|
||||||
|
- revert last change (bnc#599224#c3)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 29 11:11:13 CEST 2010 - dmueller@suse.de
|
Thu Apr 29 11:11:13 CEST 2010 - dmueller@suse.de
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
Name: btrfsprogs
|
Name: btrfsprogs
|
||||||
Url: http://oss.oracle.com/~mason/btrfs/
|
Url: http://oss.oracle.com/~mason/btrfs/
|
||||||
Version: 0.19
|
Version: 0.19
|
||||||
Release: 8
|
Release: 9
|
||||||
Summary: Btrfs File System Utilities
|
Summary: Btrfs File System Utilities
|
||||||
License: GNU General Public License (GPL)
|
License: GNU General Public License (GPL)
|
||||||
Group: System/Filesystems
|
Group: System/Filesystems
|
||||||
@ -32,6 +32,7 @@ Patch2: 0002-btrfsctl-add-snapshot-subvolume-destroy-ioctl.patch
|
|||||||
Patch3: 0003-btrfsck-check-root-back-forward-references.patch
|
Patch3: 0003-btrfsck-check-root-back-forward-references.patch
|
||||||
Patch4: 0004-Add-btrfs-map-logical-program-to-map-and-read-logica.patch
|
Patch4: 0004-Add-btrfs-map-logical-program-to-map-and-read-logica.patch
|
||||||
Patch5: 0001-Plug-Memory-leak-in-find_and_setup_log_root.patch
|
Patch5: 0001-Plug-Memory-leak-in-find_and_setup_log_root.patch
|
||||||
|
Patch6: 0005-fix-use-after-free.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: libacl-devel libext2fs-devel libuuid-devel zlib-devel
|
BuildRequires: libacl-devel libext2fs-devel libuuid-devel zlib-devel
|
||||||
|
|
||||||
@ -47,13 +48,15 @@ file systems.
|
|||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
make %{?jobs:-j%jobs} CFLAGS="%{optflags}" all convert
|
make %{?jobs:-j%jobs} CFLAGS="%{optflags}" all convert
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make install DESTDIR=${RPM_BUILD_ROOT} prefix=%{_prefix} bindir=/sbin mandir=%{_mandir}
|
make install DESTDIR=${RPM_BUILD_ROOT} prefix=%{_prefix} bindir=/sbin mandir=%{_mandir}
|
||||||
ln ${RPM_BUILD_ROOT}/sbin/btrfsck ${RPM_BUILD_ROOT}/sbin/fsck.btrfs
|
# command line options are not compatible (bnc#599224)
|
||||||
|
#ln ${RPM_BUILD_ROOT}/sbin/btrfsck ${RPM_BUILD_ROOT}/sbin/fsck.btrfs
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
@ -64,7 +67,7 @@ ln ${RPM_BUILD_ROOT}/sbin/btrfsck ${RPM_BUILD_ROOT}/sbin/fsck.btrfs
|
|||||||
/sbin/btrfsck
|
/sbin/btrfsck
|
||||||
/sbin/btrfsctl
|
/sbin/btrfsctl
|
||||||
/sbin/mkfs.btrfs
|
/sbin/mkfs.btrfs
|
||||||
/sbin/fsck.btrfs
|
#/sbin/fsck.btrfs
|
||||||
/sbin/btrfs-map-logical
|
/sbin/btrfs-map-logical
|
||||||
%_mandir/man8/btrfs-image.8.gz
|
%_mandir/man8/btrfs-image.8.gz
|
||||||
%_mandir/man8/btrfs-show.8.gz
|
%_mandir/man8/btrfs-show.8.gz
|
||||||
|
Loading…
x
Reference in New Issue
Block a user