[libvirt] [PATCH] util: Fix bug which will cause libvirtd crash

"virCommandRun": if "cmd->outbuf" or "cmd->errbuf" is NULL, libvirtd will be crashed when trying to start a qemu domain (which invokes "virCommandRun"), it caused by we try to use "*cmd->outbuf" and "*cmd->errbuf" regardless of cmd->outbuf or cmd->errbuf is NULL. * src/util/command.c (virCommandRun) --- src/util/command.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/command.c b/src/util/command.c index aa43f76..38d462b 100644 --- a/src/util/command.c +++ b/src/util/command.c @@ -931,8 +931,8 @@ virCommandRun(virCommandPtr cmd, int *exitstatus) ret = -1; VIR_DEBUG("Result stdout: '%s' stderr: '%s'", - NULLSTR(*cmd->outbuf), - NULLSTR(*cmd->errbuf)); + cmd->outbuf ? NULLSTR(*cmd->outbuf) : "(null)", + cmd->errbuf ? NULLSTR(*cmd->errbuf) : "(null)"); /* Reset any capturing, in case caller runs * this identical command again */ -- 1.7.3.2

On 12/06/2010 02:41 AM, Osier Yang wrote:
"virCommandRun": if "cmd->outbuf" or "cmd->errbuf" is NULL, libvirtd will be crashed when trying to start a qemu domain (which invokes "virCommandRun"), it caused by we try to use "*cmd->outbuf" and "*cmd->errbuf" regardless of cmd->outbuf or cmd->errbuf is NULL.
* src/util/command.c (virCommandRun) --- src/util/command.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
ACK; this fixes the issue Matthias raised in https://www.redhat.com/archives/libvir-list/2010-December/msg00257.html. Pushed. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
participants (2)
-
Eric Blake
-
Osier Yang