diff --git a/ChangeLog b/ChangeLog index 94a694f060..edabea2bd7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed May 21 15:42:29 EST 2008 Daniel P. Berrange + + * src/qemu_conf.c: Run qemu with -help and don't pollute + libvirtd environment + Tue May 20 12:15:29 EST 2008 Daniel P. Berrange * qemud/qemud.c: Re-factor daemon startup code to avoid diff --git a/src/qemu_conf.c b/src/qemu_conf.c index d6afe59291..6015e99014 100644 --- a/src/qemu_conf.c +++ b/src/qemu_conf.c @@ -448,6 +448,9 @@ static int qemudExtractVersionInfo(const char *qemu, int *version, int *flags) { } if (child == 0) { /* Kid */ + /* Just in case QEMU is translated someday we force to C locale.. */ + const char *const qemuenv[] = { "LANG=C", NULL }; + if (close(STDIN_FILENO) < 0) goto cleanup1; if (close(STDERR_FILENO) < 0) @@ -457,9 +460,9 @@ static int qemudExtractVersionInfo(const char *qemu, int *version, int *flags) { if (dup2(newstdout[1], STDOUT_FILENO) < 0) goto cleanup1; - /* Just in case QEMU is translated someday.. */ - setenv("LANG", "C", 1); - execl(qemu, qemu, (char*)NULL); + /* Passing -help, rather than relying on no-args which doesn't + always work */ + execle(qemu, qemu, "-help", (char*)NULL, qemuenv); cleanup1: _exit(-1); /* Just in case */