diff options
Diffstat (limited to 'debian/patches/0001-mdadm-fix-use-after-free-after-free_mdstat.patch')
-rw-r--r-- | debian/patches/0001-mdadm-fix-use-after-free-after-free_mdstat.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/debian/patches/0001-mdadm-fix-use-after-free-after-free_mdstat.patch b/debian/patches/0001-mdadm-fix-use-after-free-after-free_mdstat.patch new file mode 100644 index 00000000..4d8ce04b --- /dev/null +++ b/debian/patches/0001-mdadm-fix-use-after-free-after-free_mdstat.patch @@ -0,0 +1,37 @@ +From 1c7c65a3e5d3e5f6d32bfa4cf0d872f87c654eb2 Mon Sep 17 00:00:00 2001 +From: Zhipeng Xie <xiezhipeng1@huawei.com> +Date: Tue, 10 Apr 2018 09:25:39 +0800 +Subject: [PATCH 1/9] mdadm: fix use-after-free after free_mdstat + +e->percent access the mdstat_ent which was already freed in free_mdstat + +Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com> +Signed-off-by: Jes Sorensen <jsorensen@fb.com> +--- + Detail.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Detail.c b/Detail.c +index 4dcf81dd..860241ce 100644 +--- a/Detail.c ++++ b/Detail.c +@@ -561,7 +561,6 @@ int Detail(char *dev, struct context *c) + printf(" %7s Status : %d%% complete\n", + sync_action[e->resync], e->percent); + } +- free_mdstat(ms); + + if ((st && st->sb) && (info && info->reshape_active)) { + #if 0 +@@ -609,6 +608,8 @@ This is pretty boring + printf("\n"); + } else if (e && e->percent >= 0) + printf("\n"); ++ free_mdstat(ms); ++ + if (st && st->sb) + st->ss->detail_super(st, c->homehost); + +-- +2.17.0 + |