Segfault in virCommandRun when trying to start a QEMU guest

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In qemudStartVMDaemon in/out/err for the virCommand are set based on
FDs this results in a segfault in virCommandRun here

    VIR_DEBUG("Result stdout: '%s' stderr: '%s'",
              NULLSTR(*cmd->outbuf),
              NULLSTR(*cmd->errbuf));

as cmd->outbuf and cmd->errbuf are NULL.

The two if blocks before that setup cmd->outbuf and cmd->errbuf in
case the caller didn't request output capturing aren't executed
because the caller requested to capture the output to FDs.

    /* If caller hasn't requested capture of stdout/err, then capture
     * it ourselves so we can log it.
     */
    if (!cmd->outfdptr) {
        cmd->outfdptr = &cmd->outfd;
        cmd->outbuf = &outbuf;
    }
    if (!cmd->errfdptr) {
        cmd->errfdptr = &cmd->errfd;
        cmd->errbuf = &errbuf;
    }

In the case the caller requested to capture the output to FDs there is
no capturing to cmd->outbuf and cmd->errbuf and they stay NULL.

When I remove that offending VIR_DEBUG line everything works fine.

Also this case of FD only usage is not yet covered in the command API
test cases.

Matthias

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]