From 1d2a62b2e0f41f82b92b7d5903fcb67bdf23800d Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Tue, 5 Feb 2019 14:30:42 +0100 Subject: [PATCH] vircommand: Ensure buffers are NULL-terminated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The memory allocated by VIR_REALLOC_N() is uninitialized, which means it's not possible to figure out whether any output was produced at all after the fact. Since we don't care about the previous contents of buffers, if any, use VIR_FREE() followed by VIR_ALLOC_N() instead. Signed-off-by: Andrea Bolognani Reviewed-by: John Ferlan Reviewed-by: Daniel P. Berrangé --- src/util/vircommand.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/util/vircommand.c b/src/util/vircommand.c index d965068369..3d533c68a6 100644 --- a/src/util/vircommand.c +++ b/src/util/vircommand.c @@ -2055,12 +2055,14 @@ virCommandProcessIO(virCommandPtr cmd) * results accumulated over a prior run of the same command. */ if (cmd->outbuf) { outfd = cmd->outfd; - if (VIR_REALLOC_N(*cmd->outbuf, 1) < 0) + VIR_FREE(*cmd->outbuf); + if (VIR_ALLOC_N(*cmd->outbuf, 1) < 0) ret = -1; } if (cmd->errbuf) { errfd = cmd->errfd; - if (VIR_REALLOC_N(*cmd->errbuf, 1) < 0) + VIR_FREE(*cmd->errbuf); + if (VIR_ALLOC_N(*cmd->errbuf, 1) < 0) ret = -1; } if (ret == -1)