From d7e5527a4ef42d8f227a97c799b17809b44870c8 Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Fri, 9 Jan 2015 08:57:11 +0000 Subject: [PATCH] Accepting request 280547 from home:jankara:branches:filesystems Fix use after free issue leading to occasional crash OBS-URL: https://build.opensuse.org/request/show/280547 OBS-URL: https://build.opensuse.org/package/show/filesystems/e2fsprogs?expand=0&rev=60 --- e2fsck-fix-free-pointer-dereferences.patch | 51 ++++++++++++++++++++++ e2fsprogs.changes | 5 +++ e2fsprogs.spec | 4 +- 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 e2fsck-fix-free-pointer-dereferences.patch diff --git a/e2fsck-fix-free-pointer-dereferences.patch b/e2fsck-fix-free-pointer-dereferences.patch new file mode 100644 index 0000000..cf25293 --- /dev/null +++ b/e2fsck-fix-free-pointer-dereferences.patch @@ -0,0 +1,51 @@ +From ebdf895b43a1ce499e4d2556a201e2a753fc422f Mon Sep 17 00:00:00 2001 +From: Theodore Ts'o +Date: Wed, 8 Oct 2014 11:18:41 -0400 +Subject: [PATCH] e2fsck: fix free pointer dereferences +References: bnc#912229 + +Commit 47fee2ef6a23a introduces some free pointer dereference bugs by +not clearing ctx->fs after calling ext2fs_close_free(). + +Reported-by: Matthias Andree +Cc: Lukas Czerner +Signed-off-by: Theodore Ts'o +Acked-by: Jan Kara +--- + e2fsck/unix.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/e2fsck/unix.c b/e2fsck/unix.c +index 66debcde53ed..10036e76132c 100644 +--- a/e2fsck/unix.c ++++ b/e2fsck/unix.c +@@ -458,7 +458,7 @@ static void check_if_skip(e2fsck_t ctx) + } + log_out(ctx, "\n"); + skip: +- ext2fs_close_free(&fs); ++ ext2fs_close_free(&ctx->fs); + e2fsck_free_context(ctx); + exit(FSCK_OK); + } +@@ -1462,7 +1462,7 @@ failure: + /* + * Restart in order to reopen fs but this time start mmp. + */ +- ext2fs_close_free(&fs); ++ ext2fs_close_free(&ctx->fs); + flags &= ~EXT2_FLAG_SKIP_MMP; + goto restart; + } +@@ -1692,7 +1692,7 @@ no_journal: + _("while resetting context")); + fatal_error(ctx, 0); + } +- ext2fs_close_free(&fs); ++ ext2fs_close_free(&ctx->fs); + goto restart; + } + if (run_result & E2F_FLAG_ABORT) +-- +2.1.2 + diff --git a/e2fsprogs.changes b/e2fsprogs.changes index 7f94a44..98bc2cc 100644 --- a/e2fsprogs.changes +++ b/e2fsprogs.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Jan 9 08:48:40 UTC 2015 - jack@suse.cz + +- e2fsck-fix-free-pointer-dereferences.patch: Fix use after free (bnc#912229) + ------------------------------------------------------------------- Tue Sep 2 13:39:35 UTC 2014 - jack@suse.cz diff --git a/e2fsprogs.spec b/e2fsprogs.spec index 9601bdb..1f39016 100644 --- a/e2fsprogs.spec +++ b/e2fsprogs.spec @@ -1,7 +1,7 @@ # # spec file for package e2fsprogs # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -80,6 +80,7 @@ Patch1: e2fsprogs-1.41.1-splash_support.patch Patch3: libcom_err-compile_et_permissions.patch Patch4: e2fsprogs-1.42-implicit_fortify_decl.patch Patch5: e2fsprogs-1.42-ext2fsh_implicit.patch +Patch6: e2fsck-fix-free-pointer-dereferences.patch # Do not suppress make commands BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -193,6 +194,7 @@ Development files for the com_err error message display library. %patch3 -p1 %patch4 %patch5 +%patch6 -p1 cp %{SOURCE2} . %build