From 438d6546db421ba085f01669114dfa8a51c2fdc2 Mon Sep 17 00:00:00 2001 From: Zhipeng Xie Date: Fri, 30 Mar 2018 15:12:54 +0800 Subject: [PATCH] Detail: 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 --- 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);