
"Daniel P. Berrange" <berrange@redhat.com> wrote:
This patch makes the code that probes QEMU args explicitly add the -help argument. This works around a problem with certain KVM builds which refuse to run if executed without -help, and no KVM modules are present.
Sounds obtuse enough to deserve a comment in the code.
It also removes the set of setenv() since that changes libvirtd's environ and instead uses execle() to set the child's environment
Dan
Index: src/qemu_conf.c =================================================================== RCS file: /data/cvs/libvirt/src/qemu_conf.c,v retrieving revision 1.64 diff -u -p -r1.64 qemu_conf.c --- src/qemu_conf.c 15 May 2008 20:07:34 -0000 1.64 +++ src/qemu_conf.c 16 May 2008 14:34:42 -0000 @@ -447,6 +447,8 @@ static int qemudExtractVersionInfo(const }
if (child == 0) { /* Kid */ + const char *const qemuenv[] = { "LANG=C", NULL }; + if (close(STDIN_FILENO) < 0) goto cleanup1; if (close(STDERR_FILENO) < 0) @@ -457,8 +459,7 @@ static int qemudExtractVersionInfo(const goto cleanup1;
/* Just in case QEMU is translated someday.. */ - setenv("LANG", "C", 1); - execl(qemu, qemu, (char*)NULL); + execle(qemu, qemu, "-help", (char*)NULL, qemuenv);
cleanup1: _exit(-1); /* Just in case */
ACK