From 9e8d33ae1c9e712b3203cd8475f4d20c5b2927f5 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 5 Apr 2017 09:59:25 +0200 Subject: [PATCH] virStorageSourceClear: Don't leave dangling pointers behind Imagine that this function is called twice over the same disk source. While in the first run all allocated memory is freed, not all pointers are set to NULL (e.g. def->srcpool). So when called again, these poitners are freed again resulting in double free. Signed-off-by: Michal Privoznik (cherry picked from commit 349badbffd50f86580884b29fdfa7ad6ea082c2e) --- src/util/virstoragefile.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index a51622affe..94a77ce862 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2274,6 +2274,8 @@ virStorageSourceClear(virStorageSourcePtr def) VIR_FREE(def->nodeformat); virStorageSourceBackingStoreClear(def); + + memset(def, 0, sizeof(*def)); }