[libvirt] Coverity automatic detection

Alex Jia ajia at redhat.com
Wed Mar 28 04:10:19 UTC 2012


This email is automatically generated.

The test result is based on the following git commit:
851117b Enable all warnings permanently & default to -Werror for GIT builds

Analysis summary report:
------------------------
Files analyzed                 : 306
Total LoC input to cov-analyze : 362576
Functions analyzed             : 8807
Paths analyzed                 : 1075505
Defect occurrences found       : 105 Total
                                   7 ATOMICITY
                                  15 CHECKED_RETURN
                                  14 DEADCODE
                                   1 EVALUATION_ORDER
                                   9 FORWARD_NULL
                                  13 LOCK
                                   3 NEGATIVE_RETURNS
                                   1 NO_EFFECT
                                   3 NULL_RETURNS
                                   1 OVERRUN_STATIC
                                  16 RESOURCE_LEAK
                                   1 RETURN_LOCAL
                                  12 REVERSE_INULL
                                   1 SIZEOF_MISMATCH
                                   6 UNINIT
                                   2 UNUSED_VALUE

Exceeded path limit of 5000 paths in 0.55% of functions (normally up to 5% of functions encounter this limitation)

For details, please see attachment.


Regards,
Alex
-------------- next part --------------
Error: ATOMICITY:
/libvirt/src/util/event_poll.c:603:
lock: Locking "eventLoop.lock.lock".
/libvirt/src/util/event_poll.c:610:
def: Assigning: "fds" = data that might be protected by the lock.
/libvirt/src/util/event_poll.c:614:
unlock: Unlocking "eventLoop.lock.lock". "fds" might now be unreliable because other threads can now change the data that it depends on.
/libvirt/src/util/event_poll.c:632:
lockagain: Locking "eventLoop.lock.lock" again.
/libvirt/src/util/event_poll.c:636:
use: Using an unreliable value of "fds" inside the second locked section.  If the data that "fds" depends on was changed by another thread, this use might be incorrect.

Error: ATOMICITY:
/libvirt/src/rpc/virnetclientstream.c:386:
lock: Locking "st->lock.lock".
/libvirt/src/rpc/virnetclientstream.c:397:
def: Assigning: "msg" = data that might be protected by the lock.
/libvirt/src/rpc/virnetclientstream.c:410:
unlock: Unlocking "st->lock.lock". "msg" might now be unreliable because other threads can now change the data that it depends on.
/libvirt/src/rpc/virnetclientstream.c:412:
lockagain: Locking "st->lock.lock" again.
/libvirt/src/rpc/virnetclientstream.c:413:
use: Using an unreliable value of "msg" inside the second locked section.  If the data that "msg" depends on was changed by another thread, this use might be incorrect.

Error: ATOMICITY:
/libvirt/src/rpc/virnetclientstream.c:96:
lock: Locking "st->lock.lock".
/libvirt/src/rpc/virnetclientstream.c:109:
def: Assigning: "cbOpaque" = data that might be protected by the lock.
/libvirt/src/rpc/virnetclientstream.c:113:
unlock: Unlocking "st->lock.lock". "cbOpaque" might now be unreliable because other threads can now change the data that it depends on.
/libvirt/src/rpc/virnetclientstream.c:115:
lockagain: Locking "st->lock.lock" again.
/libvirt/src/rpc/virnetclientstream.c:119:
use: Using an unreliable value of "cbOpaque" inside the second locked section.  If the data that "cbOpaque" depends on was changed by another thread, this use might be incorrect.

Error: ATOMICITY:
/libvirt/src/fdstream.c:159:
lock: Locking "fdst->lock.lock".
/libvirt/src/fdstream.c:166:
def: Assigning: "cbopaque" = data that might be protected by the lock.
/libvirt/src/fdstream.c:169:
unlock: Unlocking "fdst->lock.lock". "cbopaque" might now be unreliable because other threads can now change the data that it depends on.
/libvirt/src/fdstream.c:173:
lockagain: Locking "fdst->lock.lock" again.
/libvirt/src/fdstream.c:176:
use: Using an unreliable value of "cbopaque" inside the second locked section.  If the data that "cbopaque" depends on was changed by another thread, this use might be incorrect.

Error: ATOMICITY:
/libvirt/src/util/threadpool.c:95:
lock: Locking "pool->mutex.lock".
/libvirt/src/util/threadpool.c:129:
def: Assigning: "pool->jobList.firstPrio" = data that might be protected by the lock.
/libvirt/src/util/threadpool.c:143:
unlock: Unlocking "pool->mutex.lock". "pool->jobList.firstPrio" might now be unreliable because other threads can now change the data that it depends on.
/libvirt/src/util/threadpool.c:146:
lockagain: Locking "pool->mutex.lock" again.
/libvirt/src/util/threadpool.c:116:
use: Using an unreliable value of "pool->jobList.firstPrio" inside the second locked section.  If the data that "pool->jobList.firstPrio" depends on was changed by another thread, this use might be incorrect.

Error: ATOMICITY:
/libvirt/src/util/threadpool.c:146:
lock: Locking "pool->mutex.lock".
/libvirt/src/util/threadpool.c:129:
def: Assigning: "pool->jobList.firstPrio" = data that might be protected by the lock.
/libvirt/src/util/threadpool.c:143:
unlock: Unlocking "pool->mutex.lock". "pool->jobList.firstPrio" might now be unreliable because other threads can now change the data that it depends on.
/libvirt/src/util/threadpool.c:146:
lockagain: Locking "pool->mutex.lock" again.
/libvirt/src/util/threadpool.c:116:
use: Using an unreliable value of "pool->jobList.firstPrio" inside the second locked section.  If the data that "pool->jobList.firstPrio" depends on was changed by another thread, this use might be incorrect.

Error: ATOMICITY:
/libvirt/src/util/threadpool.c:146:
lock: Locking "pool->mutex.lock".
/libvirt/src/util/threadpool.c:135:
def: Assigning: "pool->jobList.head" = data that might be protected by the lock.
/libvirt/src/util/threadpool.c:143:
unlock: Unlocking "pool->mutex.lock". "pool->jobList.head" might now be unreliable because other threads can now change the data that it depends on.
/libvirt/src/util/threadpool.c:146:
lockagain: Locking "pool->mutex.lock" again.
/libvirt/src/util/threadpool.c:118:
use: Using an unreliable value of "pool->jobList.head" inside the second locked section.  If the data that "pool->jobList.head" depends on was changed by another thread, this use might be incorrect.

Error: CHECKED_RETURN:
/libvirt/src/qemu/qemu_hostdev.c:104:
example_checked: "pciDeviceListAdd(list, activeDev)" has its value checked in "pciDeviceListAdd(list, activeDev) < 0".
/libvirt/src/qemu/qemu_hostdev.c:61:
example_checked: "pciDeviceListAdd(list, dev)" has its value checked in "pciDeviceListAdd(list, dev) < 0".
/libvirt/src/qemu/qemu_hostdev.c:423:
example_checked: "pciDeviceListAdd(driver->activePciHostdevs, dev)" has its value checked in "pciDeviceListAdd(driver->activePciHostdevs, dev) < 0".
/libvirt/src/qemu/qemu_hostdev.c:151:
example_checked: "pciDeviceListAdd(driver->activePciHostdevs, dev)" has its value checked in "pciDeviceListAdd(driver->activePciHostdevs, dev) < 0".
/libvirt/src/util/pci.c:1137:
example_checked: "pciDeviceListAdd(inactiveDevs, dev)" has its value checked in "pciDeviceListAdd(inactiveDevs, dev) < 0".
/libvirt/src/qemu/qemu_hostdev.c:660:
check_return: Calling function "pciDeviceListAdd" without checking return value (as is done elsewhere 5 out of 6 times).
/libvirt/src/qemu/qemu_hostdev.c:660:
unchecked_value: No check of the return value of "pciDeviceListAdd(driver->inactivePciHostdevs, dev)".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:845:
example_checked: "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir)" has its value checked in "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir) < 0".
/libvirt/daemon/libvirtd.c:938:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host")".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:944:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host %s", localhost)".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:301:
example_checked: "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir)" has its value checked in "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir) < 0".
/libvirt/daemon/libvirtd.c:794:
example_checked: "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var")" has its value checked in "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var") == -1".
/libvirt/src/conf/network_conf.c:595:
check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 491 out of 519 times).
/libvirt/src/conf/network_conf.c:595:
unchecked_value: No check of the return value of "virAsprintf(&name, dcgettext("libvirt", "Service name is too long, limit is %d bytes", 5), 482)".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:845:
example_checked: "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir)" has its value checked in "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir) < 0".
/libvirt/daemon/libvirtd.c:938:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host")".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:944:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host %s", localhost)".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:301:
example_checked: "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir)" has its value checked in "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir) < 0".
/libvirt/daemon/libvirtd.c:794:
example_checked: "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var")" has its value checked in "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var") == -1".
/libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:2891:
check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 491 out of 519 times).
/libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:2891:
unchecked_value: No check of the return value of "virAsprintf(&protostr, "-d 01:80:c2:00:00:00 ")".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:845:
example_checked: "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir)" has its value checked in "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir) < 0".
/libvirt/daemon/libvirtd.c:938:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host")".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:944:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host %s", localhost)".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:301:
example_checked: "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir)" has its value checked in "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir) < 0".
/libvirt/daemon/libvirtd.c:794:
example_checked: "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var")" has its value checked in "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var") == -1".
/libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:2894:
check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 491 out of 519 times).
/libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:2894:
unchecked_value: No check of the return value of "virAsprintf(&protostr, "-p 0x%04x ", l3_protocols[protoidx].attr)".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:845:
example_checked: "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir)" has its value checked in "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir) < 0".
/libvirt/daemon/libvirtd.c:938:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host")".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:944:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host %s", localhost)".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:301:
example_checked: "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir)" has its value checked in "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir) < 0".
/libvirt/daemon/libvirtd.c:794:
example_checked: "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var")" has its value checked in "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var") == -1".
/libvirt/src/qemu/qemu_process.c:2775:
check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 491 out of 519 times).
/libvirt/src/qemu/qemu_process.c:2775:
unchecked_value: No check of the return value of "virAsprintf(&msg, "was paused (%s)", virDomainPausedReasonTypeToString(reason))".

Error: CHECKED_RETURN:
/libvirt/tools/virsh.c:4004:
example_checked: "pthread_sigmask(0, &sigmask, &oldsigmask)" has its value checked in "pthread_sigmask(0, &sigmask, &oldsigmask) < 0".
/libvirt/tools/virsh.c:3535:
example_checked: "pthread_sigmask(0, &sigmask, &oldsigmask)" has its value checked in "pthread_sigmask(0, &sigmask, &oldsigmask) < 0".
/libvirt/tools/virsh.c:7108:
example_checked: "pthread_sigmask(0, &sigmask, &oldsigmask)" has its value checked in "pthread_sigmask(0, &sigmask, &oldsigmask) < 0".
/libvirt/tools/virsh.c:3209:
example_checked: "pthread_sigmask(0, &sigmask, &oldsigmask)" has its value checked in "pthread_sigmask(0, &sigmask, &oldsigmask) < 0".
/libvirt/tools/virsh.c:7308:
check_return: Calling function "pthread_sigmask" without checking return value (as is done elsewhere 4 out of 5 times).
/libvirt/tools/virsh.c:7308:
unchecked_value: No check of the return value of "pthread_sigmask(0, &sigmask, &oldsigmask)".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:1308:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/python/libvirt-override.c:5775:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/python/libvirt-qemu-override.c:109:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/src/libvirt.c:675:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/src/libvirt.c:741:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/tests/shunloadhelper.c:46:
check_return: Calling function "virInitialize" without checking return value (as is done elsewhere 18 out of 21 times).
/libvirt/tests/shunloadhelper.c:46:
unchecked_value: No check of the return value of "virInitialize()".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:845:
example_checked: "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir)" has its value checked in "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir) < 0".
/libvirt/daemon/libvirtd.c:938:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host")".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:944:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host %s", localhost)".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:301:
example_checked: "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir)" has its value checked in "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir) < 0".
/libvirt/daemon/libvirtd.c:794:
example_checked: "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var")" has its value checked in "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var") == -1".
/libvirt/tests/xml2vmxtest.c:191:
check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 491 out of 519 times).
/libvirt/tests/xml2vmxtest.c:191:
unchecked_value: No check of the return value of "virAsprintf(&absolutePath, "/vmfs/volumes/%s/%s", datastoreName, directoryAndFileName)".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:845:
example_checked: "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir)" has its value checked in "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir) < 0".
/libvirt/daemon/libvirtd.c:938:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host")".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:944:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host %s", localhost)".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:301:
example_checked: "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir)" has its value checked in "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir) < 0".
/libvirt/daemon/libvirtd.c:794:
example_checked: "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var")" has its value checked in "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var") == -1".
/libvirt/tests/vmx2xmltest.c:177:
check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 491 out of 519 times).
/libvirt/tests/vmx2xmltest.c:177:
unchecked_value: No check of the return value of "virAsprintf(&src, "[%s] %s", datastoreName, directoryAndFileName)".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:845:
example_checked: "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir)" has its value checked in "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir) < 0".
/libvirt/daemon/libvirtd.c:938:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host")".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:944:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host %s", localhost)".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:301:
example_checked: "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir)" has its value checked in "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir) < 0".
/libvirt/daemon/libvirtd.c:794:
example_checked: "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var")" has its value checked in "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var") == -1".
/libvirt/tests/vmx2xmltest.c:186:
check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 491 out of 519 times).
/libvirt/tests/vmx2xmltest.c:186:
unchecked_value: No check of the return value of "virAsprintf(&src, "[datastore] directory/%s", fileName)".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:845:
example_checked: "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir)" has its value checked in "virAsprintf(configfile, "%s/.libvirt/libvirtd.conf", userdir) < 0".
/libvirt/daemon/libvirtd.c:938:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host")".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:944:
example_assign: Assigning: "ret" = return value from "virAsprintf(&data->mdns_name, "Virtualization Host %s", localhost)".
/libvirt/daemon/libvirtd.c:948:
example_checked: "ret" has its value checked in "ret < 0".
/libvirt/daemon/libvirtd.c:301:
example_checked: "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir)" has its value checked in "virAsprintf(pidfile, "%s/.libvirt/libvirtd.pid", userdir) < 0".
/libvirt/daemon/libvirtd.c:794:
example_checked: "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var")" has its value checked in "virAsprintf(&tmp, "%d:file:%s/log/libvirt/libvirtd.log", virLogGetDefaultPriority(), "/usr/local/var") == -1".
/libvirt/tests/networkxml2argvtest.c:132:
check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 491 out of 519 times).
/libvirt/tests/networkxml2argvtest.c:132:
unchecked_value: No check of the return value of "virAsprintf(&leasefile, "/var/lib/libvirt/dnsmasq/%s.leases", netname)".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:216:
example_checked: "setsid()" has its value checked in "setsid() < 0".
/libvirt/src/lxc/lxc_container.c:155:
example_checked: "setsid()" has its value checked in "setsid() < 0".
/libvirt/src/lxc/lxc_controller.c:1824:
example_checked: "setsid()" has its value checked in "setsid() < 0".
/libvirt/src/util/command.c:575:
example_checked: "setsid()" has its value checked in "setsid() < 0".
/libvirt/tests/commandtest.c:809:
check_return: Calling function "setsid" without checking return value (as is done elsewhere 4 out of 5 times).
/libvirt/tests/commandtest.c:809:
unchecked_value: No check of the return value of "setsid()".

Error: CHECKED_RETURN:
/libvirt/daemon/libvirtd.c:1308:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/python/libvirt-override.c:5775:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/python/libvirt-qemu-override.c:109:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/src/libvirt.c:675:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/src/libvirt.c:741:
example_checked: "virInitialize()" has its value checked in "virInitialize() < 0".
/libvirt/tests/commandtest.c:833:
check_return: Calling function "virInitialize" without checking return value (as is done elsewhere 18 out of 21 times).
/libvirt/tests/commandtest.c:833:
unchecked_value: No check of the return value of "virInitialize()".

Error: CHECKED_RETURN:
/libvirt/tests/cputest.c:482:
example_checked: "virTestGetDebug()" has its value checked in "virTestGetDebug()".
/libvirt/tests/jsontest.c:34:
example_checked: "virTestGetDebug()" has its value checked in "virTestGetDebug()".
/libvirt/tests/jsontest.c:44:
example_checked: "virTestGetDebug()" has its value checked in "virTestGetDebug()".
/libvirt/tests/nodeinfotest.c:52:
example_checked: "virTestGetDebug()" has its value checked in "virTestGetDebug()".
/libvirt/tests/qemuhelptest.c:84:
example_checked: "virTestGetDebug()" has its value checked in "virTestGetDebug()".
/libvirt/tests/commandtest.c:830:
check_return: Calling function "virTestGetDebug" without checking return value (as is done elsewhere 30 out of 33 times).
/libvirt/tests/commandtest.c:830:
unchecked_value: No check of the return value of "virTestGetDebug()".

Error: CHECKED_RETURN:
/libvirt/tests/cputest.c:181:
example_checked: "virTestGetVerbose()" has its value checked in "virTestGetVerbose()".
/libvirt/tests/cputest.c:344:
example_checked: "virTestGetVerbose()" has its value checked in "virTestGetVerbose()".
/libvirt/tests/cputest.c:365:
example_checked: "virTestGetVerbose()" has its value checked in "virTestGetVerbose()".
/libvirt/tests/cputest.c:243:
example_checked: "virTestGetVerbose()" has its value checked in "virTestGetVerbose()".
/libvirt/tests/cputest.c:440:
example_checked: "virTestGetVerbose()" has its value checked in "virTestGetVerbose()".
/libvirt/tests/commandtest.c:831:
check_return: Calling function "virTestGetVerbose" without checking return value (as is done elsewhere 41 out of 42 times).
/libvirt/tests/commandtest.c:831:
unchecked_value: No check of the return value of "virTestGetVerbose()".

Error: DEADCODE:
/libvirt/gnulib/lib/strerror_r.c:153:
dead_error_condition: On this path, the condition "msg" cannot be true.
/libvirt/gnulib/lib/strerror_r.c:151:
const: After this line, the value of "msg" is equal to 0.
/libvirt/gnulib/lib/strerror_r.c:151:
assignment: Assigning: "msg" = "NULL".
/libvirt/gnulib/lib/strerror_r.c:154:
dead_error_line: Execution cannot reach this statement "return safe_copy(buf, bufle...".

Error: DEADCODE:
/libvirt/gnulib/lib/strerror.c:45:
dead_error_condition: On this path, the condition "msg" cannot be true.
/libvirt/gnulib/lib/strerror.c:44:
const: After this line, the value of "msg" is equal to 0.
/libvirt/gnulib/lib/strerror.c:44:
assignment: Assigning: "msg" = "NULL".
/libvirt/gnulib/lib/strerror.c:46:
dead_error_line: Execution cannot reach this statement "return (char *)msg;".

Error: DEADCODE:
/libvirt/src/qemu/qemu_command.c:2770:
dead_error_condition: On this path, the switch value "netType" cannot be "VIR_DOMAIN_NET_TYPE_BRIDGE".
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 2.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 3.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 4.
/libvirt/src/qemu/qemu_command.c:2744:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_CLIENT".
/libvirt/src/qemu/qemu_command.c:2746:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_MCAST".
/libvirt/src/qemu/qemu_command.c:2745:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_SERVER".
/libvirt/src/qemu/qemu_command.c:2770:
dead_error_line: Execution cannot reach this statement "case VIR_DOMAIN_NET_TYPE_BR...".

Error: DEADCODE:
/libvirt/src/qemu/qemu_command.c:2772:
dead_error_condition: On this path, the switch value "netType" cannot be "VIR_DOMAIN_NET_TYPE_DIRECT".
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 2.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 3.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 4.
/libvirt/src/qemu/qemu_command.c:2744:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_CLIENT".
/libvirt/src/qemu/qemu_command.c:2746:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_MCAST".
/libvirt/src/qemu/qemu_command.c:2745:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_SERVER".
/libvirt/src/qemu/qemu_command.c:2772:
dead_error_line: Execution cannot reach this statement "case VIR_DOMAIN_NET_TYPE_DI...".

Error: DEADCODE:
/libvirt/src/qemu/qemu_command.c:2768:
dead_error_condition: On this path, the switch value "netType" cannot be "VIR_DOMAIN_NET_TYPE_ETHERNET".
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 2.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 3.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 4.
/libvirt/src/qemu/qemu_command.c:2744:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_CLIENT".
/libvirt/src/qemu/qemu_command.c:2746:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_MCAST".
/libvirt/src/qemu/qemu_command.c:2745:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_SERVER".
/libvirt/src/qemu/qemu_command.c:2768:
dead_error_line: Execution cannot reach this statement "case VIR_DOMAIN_NET_TYPE_ET...".

Error: DEADCODE:
/libvirt/src/qemu/qemu_command.c:2773:
dead_error_condition: On this path, the switch value "netType" cannot be "VIR_DOMAIN_NET_TYPE_HOSTDEV".
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 2.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 3.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 4.
/libvirt/src/qemu/qemu_command.c:2744:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_CLIENT".
/libvirt/src/qemu/qemu_command.c:2746:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_MCAST".
/libvirt/src/qemu/qemu_command.c:2745:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_SERVER".
/libvirt/src/qemu/qemu_command.c:2773:
dead_error_line: Execution cannot reach this statement "case VIR_DOMAIN_NET_TYPE_HO...".

Error: DEADCODE:
/libvirt/src/qemu/qemu_command.c:2771:
dead_error_condition: On this path, the switch value "netType" cannot be "VIR_DOMAIN_NET_TYPE_INTERNAL".
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 2.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 3.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 4.
/libvirt/src/qemu/qemu_command.c:2744:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_CLIENT".
/libvirt/src/qemu/qemu_command.c:2746:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_MCAST".
/libvirt/src/qemu/qemu_command.c:2745:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_SERVER".
/libvirt/src/qemu/qemu_command.c:2771:
dead_error_line: Execution cannot reach this statement "case VIR_DOMAIN_NET_TYPE_IN...".

Error: DEADCODE:
/libvirt/src/qemu/qemu_command.c:2774:
dead_error_condition: On this path, the switch value "netType" cannot be "VIR_DOMAIN_NET_TYPE_LAST".
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 2.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 3.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 4.
/libvirt/src/qemu/qemu_command.c:2744:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_CLIENT".
/libvirt/src/qemu/qemu_command.c:2746:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_MCAST".
/libvirt/src/qemu/qemu_command.c:2745:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_SERVER".
/libvirt/src/qemu/qemu_command.c:2774:
dead_error_begin: Execution cannot reach this statement "case VIR_DOMAIN_NET_TYPE_LAST:".

Error: DEADCODE:
/libvirt/src/qemu/qemu_command.c:2769:
dead_error_condition: On this path, the switch value "netType" cannot be "VIR_DOMAIN_NET_TYPE_NETWORK".
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 2.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 3.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 4.
/libvirt/src/qemu/qemu_command.c:2744:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_CLIENT".
/libvirt/src/qemu/qemu_command.c:2746:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_MCAST".
/libvirt/src/qemu/qemu_command.c:2745:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_SERVER".
/libvirt/src/qemu/qemu_command.c:2769:
dead_error_line: Execution cannot reach this statement "case VIR_DOMAIN_NET_TYPE_NE...".

Error: DEADCODE:
/libvirt/src/qemu/qemu_command.c:2767:
dead_error_condition: On this path, the switch value "netType" cannot be "VIR_DOMAIN_NET_TYPE_USER".
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 2.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 3.
/libvirt/src/qemu/qemu_command.c:2720:
const: After this line, the value of "netType" is equal to 4.
/libvirt/src/qemu/qemu_command.c:2744:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_CLIENT".
/libvirt/src/qemu/qemu_command.c:2746:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_MCAST".
/libvirt/src/qemu/qemu_command.c:2745:
equality_cond: Jumping to case "VIR_DOMAIN_NET_TYPE_SERVER".
/libvirt/src/qemu/qemu_command.c:2767:
dead_error_line: Execution cannot reach this statement "case VIR_DOMAIN_NET_TYPE_USER:".

Error: DEADCODE:
/libvirt/src/rpc/virnetclient.c:332:
dead_error_condition: On this path, the condition "ka" cannot be true.
/libvirt/src/rpc/virnetclient.c:274:
const: After this line, the value of "ka" is equal to 0.
/libvirt/src/rpc/virnetclient.c:312:
const: After this line, the value of "ka" is equal to 0.
/libvirt/src/rpc/virnetclient.c:274:
assignment: Assigning: "ka" = "NULL".
/libvirt/src/rpc/virnetclient.c:312:
new_values: Noticing condition "ka = virKeepAliveNew(-1, 0U, client, virNetClientKeepAliveSendCB, virNetClientKeepAliveDeadCB, virNetClientEventFree)".
/libvirt/src/rpc/virnetclient.c:333:
dead_error_begin: Execution cannot reach this statement "virKeepAliveStop(ka);".

Error: DEADCODE:
/libvirt/src/qemu/qemu_driver.c:8122:
dead_error_condition: On this path, the condition "group" cannot be true.
/libvirt/src/qemu/qemu_driver.c:8017:
const: After this line, the value of "group" is equal to 0.
/libvirt/src/qemu/qemu_driver.c:8017:
assignment: Assigning: "group" = "NULL".
/libvirt/src/qemu/qemu_driver.c:8123:
dead_error_line: Execution cannot reach this statement "virCgroupFree(&group);".

Error: DEADCODE:
/libvirt/src/lxc/lxc_controller.c:960:
dead_error_condition: On this path, the condition "ret == 4" cannot be true.
/libvirt/src/lxc/lxc_controller.c:959:
at_most: After this line, the value of "ret" is at most -1.
/libvirt/src/lxc/lxc_controller.c:959:
new_values: Noticing condition "ret < 0".
/libvirt/src/lxc/lxc_controller.c:961:
dead_error_line: Execution cannot reach this statement "continue;".

Error: DEADCODE:
/libvirt/tests/commandtest.c:666:
dead_error_condition: On this path, the condition "outbuf" cannot be true.
/libvirt/tests/commandtest.c:655:
const: After this line, the value of "outbuf" is equal to 0.
/libvirt/tests/commandtest.c:655:
new_values: Noticing condition "outbuf != NULL".
/libvirt/tests/commandtest.c:666:
dead_error_line: Execution cannot reach this expression "*outbuf" inside statement "if (!outbuf || *outbuf){
  ...".

Error: EVALUATION_ORDER:
/libvirt/src/conf/domain_conf.c:7122:
write_write_order: In "disk = disk = def->disks[i]", "disk" is written in "disk" (the assignment left-hand side) and written in "disk = def->disks[i]" but the order in which the side effects take place is undefined because there is no intervening sequence point.

Error: FORWARD_NULL:
/libvirt/src/util/command.c:1704:
var_compare_op: Comparing "cmd->errbuf" to null implies that "cmd->errbuf" might be null.
/libvirt/src/util/command.c:1761:
alias_transfer: Assigning null: "buf" = "cmd->errbuf".
/libvirt/src/util/command.c:1783:
var_deref_model: Passing null variable "buf" to function "virReallocN", which dereferences it. (The dereference is assumed on the basis of the 'nonnull' parameter attribute.)

Error: FORWARD_NULL:
/libvirt/src/util/command.c:1697:
var_compare_op: Comparing "cmd->outbuf" to null implies that "cmd->outbuf" might be null.
/libvirt/src/util/command.c:1758:
alias_transfer: Assigning null: "buf" = "cmd->outbuf".
/libvirt/src/util/command.c:1783:
var_deref_model: Passing null variable "buf" to function "virReallocN", which dereferences it. (The dereference is assumed on the basis of the 'nonnull' parameter attribute.)

Error: FORWARD_NULL:
/libvirt/src/remote/remote_driver.c:3006:
assign_zero: Assigning: "credname" = 0.
/libvirt/src/remote/remote_driver.c:3010:
var_deref_model: Passing null variable "credname" to function "virAuthConfigLookup", which dereferences it.
/libvirt/src/util/virauthconfig.c:162:
deref_parm_in_call: Function "virKeyFileHasValue" dereferences parameter "credname". (The dereference is assumed on the basis of the 'nonnull' parameter attribute.)

Error: FORWARD_NULL:
/libvirt/src/qemu/qemu_hotplug.c:2177:
var_compare_op: Comparing "detach->ifname" to null implies that "detach->ifname" might be null.
/libvirt/src/qemu/qemu_hotplug.c:2189:
var_deref_model: Passing null variable "detach->ifname" to function "virNetDevOpenvswitchRemovePort", which dereferences it. (The dereference is assumed on the basis of the 'nonnull' parameter attribute.)

Error: FORWARD_NULL:
/libvirt/src/rpc/virnetserver.c:726:
var_compare_op: Comparing "srv->clients" to null implies that "srv->clients" might be null.
/libvirt/src/rpc/virnetserver.c:748:
var_deref_op: Dereferencing null variable "srv->clients".

Error: FORWARD_NULL:
/libvirt/python/libvirt-override.c:392:
assign_zero: Assigning: "params" = 0.
/libvirt/python/libvirt-override.c:505:
var_deref_model: Passing null variable "params" to function "getPyVirTypedParameter", which dereferences it. (The dereference is assumed on the basis of the 'nonnull' parameter attribute.)

Error: FORWARD_NULL:
/libvirt/src/qemu/qemu_driver.c:6557:
assign_zero: Assigning: "group" = 0.
/libvirt/src/qemu/qemu_driver.c:6651:
var_deref_model: Passing null variable "group" to function "virCgroupGetMemoryHardLimit", which dereferences it.
/libvirt/src/util/cgroup.c:1107:
deref_parm_in_call: Function "virCgroupGetValueU64" dereferences parameter "group".
/libvirt/src/util/cgroup.c:435:
deref_parm_in_call: Function "virCgroupGetValueStr" dereferences parameter "group".
/libvirt/src/util/cgroup.c:344:
deref_parm_in_call: Function "virCgroupPathOfController" dereferences parameter "group".
/libvirt/src/util/cgroup.c:281:
deref_parm: Directly dereferencing parameter "group".

Error: FORWARD_NULL:
/libvirt/tools/virsh.c:16481:
var_compare_op: Comparing "from" to null implies that "from" might be null.
/libvirt/tools/virsh.c:16482:
var_deref_model: Passing null variable "from" to function "__coverity_strcmp", which dereferences it.

Error: FORWARD_NULL:
/libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:3583:
var_compare_op: Comparing "inst" to null implies that "inst" might be null.
/libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:3590:
var_deref_op: Dereferencing null variable "inst".

Error: LOCK:
/libvirt/src/datatypes.c:406:
lock: "virMutexLock" locks "network->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:413:
missing_unlock: Returning without unlocking "network->conn->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:1067:
lock: "virMutexLock" locks "secret->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:1074:
missing_unlock: Returning without unlocking "secret->conn->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:144:
lock: "virMutexLock" locks "conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:151:
missing_unlock: Returning without unlocking "conn->lock.lock".

Error: LOCK:
/libvirt/src/nwfilter/nwfilter_learnipaddr.c:180:
lock: "virMutexLock" locks "ifaceLock->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/nwfilter/nwfilter_learnipaddr.c:182:
missing_unlock: Returning without unlocking "ifaceLock->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:275:
lock: "virMutexLock" locks "domain->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:282:
missing_unlock: Returning without unlocking "domain->conn->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:1125:
lock: "virMutexLock" locks "st->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:1132:
missing_unlock: Returning without unlocking "st->conn->lock.lock".

Error: LOCK:
/libvirt/src/util/event_poll.c:441:
lock: "virMutexLock" locks "eventLoop.lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/util/event_poll.c:444:
missing_unlock: Returning without unlocking "eventLoop.lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:1351:
lock: "virMutexLock" locks "snapshot->domain->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:1358:
missing_unlock: Returning without unlocking "snapshot->domain->conn->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:820:
lock: "virMutexLock" locks "vol->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:827:
missing_unlock: Returning without unlocking "vol->conn->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:676:
lock: "virMutexLock" locks "pool->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:683:
missing_unlock: Returning without unlocking "pool->conn->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:1260:
lock: "virMutexLock" locks "nwfilter->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:1268:
missing_unlock: Returning without unlocking "nwfilter->conn->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:542:
lock: "virMutexLock" locks "iface->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:549:
missing_unlock: Returning without unlocking "iface->conn->lock.lock".

Error: LOCK:
/libvirt/src/datatypes.c:938:
lock: "virMutexLock" locks "dev->conn->lock.lock".
/libvirt/src/util/threads-pthread.c:85:
lock: "pthread_mutex_lock" locks "m->lock".
/libvirt/src/datatypes.c:945:
missing_unlock: Returning without unlocking "dev->conn->lock.lock".

Error: NEGATIVE_RETURNS:
/libvirt/src/util/buf.c:147:
negative_return_fn: Function "virBufferGetIndent(buf, true)" returns a negative number.
/libvirt/src/util/buf.c:89:
return_negative_constant: Explicitly returning negative value "-1".
/libvirt/src/util/buf.c:147:
var_assign: Assigning: signed variable "indent" = "virBufferGetIndent".
/libvirt/src/util/buf.c:157:
negative_returns: "indent" is passed to a parameter that cannot be negative.

Error: NEGATIVE_RETURNS:
/libvirt/src/util/command.c:1720:
var_tested_neg: Variable "infd" tests negative.
/libvirt/src/util/command.c:1799:
negative_returns: "infd" is passed to a parameter that cannot be negative.

Error: NEGATIVE_RETURNS:
/libvirt/src/conf/nwfilter_params.c:434:
var_tested_neg: Assigning: "iterIndex" = a negative value.
/libvirt/src/conf/nwfilter_params.c:473:
negative_returns: Using variable "iterIndex" as an index to array "res->iter".

Error: NO_EFFECT:
/libvirt/src/qemu/qemu_driver.c:9574:
array_null: Comparing an array to null is not useful: ""qcow2"".

Error: NULL_RETURNS:
/libvirt/src/qemu/qemu_driver.c:9184:
example_checked: "pciDeviceListFind(driver->inactivePciHostdevs, pci)" has its value checked in "pciDeviceListFind(driver->inactivePciHostdevs, pci)".
/libvirt/src/qemu/qemu_driver.c:9214:
example_assign: Assigning: "other" = return value from "pciDeviceListFind(driver->activePciHostdevs, pci)".
/libvirt/src/qemu/qemu_driver.c:9215:
example_checked: "other" has its value checked in "other".
/libvirt/src/qemu/qemu_hostdev.c:103:
example_checked: "pciDeviceListFind(driver->activePciHostdevs, dev)" has its value checked in "activeDev = pciDeviceListFind(driver->activePciHostdevs, dev)".
/libvirt/src/qemu/qemu_hostdev.c:709:
example_assign: Assigning: "activeDev" = return value from "pciDeviceListFind(driver->activePciHostdevs, dev)".
/libvirt/src/qemu/qemu_hostdev.c:710:
example_checked: "activeDev" has its value checked in "activeDev".
/libvirt/src/qemu/qemu_hostdev.c:370:
example_checked: "pciDeviceListFind(driver->activePciHostdevs, dev)" has its value checked in "other = pciDeviceListFind(driver->activePciHostdevs, dev)".
/libvirt/src/qemu/qemu_hostdev.c:442:
returned_null: Function "pciDeviceListFind" returns null (checked 12 out of 13 times).
/libvirt/src/util/pci.c:1611:
return_null: Explicitly returning NULL.
/libvirt/src/qemu/qemu_hostdev.c:442:
var_assigned: Assigning: "activeDev" = null return value from "pciDeviceListFind".
/libvirt/src/qemu/qemu_hostdev.c:444:
dereference: Dereferencing a pointer that might be null "activeDev" when calling "pciDeviceSetUsedBy".
/libvirt/src/util/pci.c:1475:
deref_parm: Directly dereferencing parameter "dev".

Error: NULL_RETURNS:
/libvirt/src/conf/domain_conf.c:765:
example_assign: Assigning: "obj" = return value from "virHashLookup(doms->objs, uuidstr)".
/libvirt/src/conf/domain_conf.c:766:
example_checked: "obj" has its value checked in "obj".
/libvirt/src/conf/domain_conf.c:14296:
example_checked: "virHashLookup(paths, path)" has its value checked in "virHashLookup(paths, path)".
/libvirt/src/conf/domain_conf.c:12905:
example_checked: "virHashLookup(doms->objs, uuidstr)" has its value checked in "virHashLookup(doms->objs, uuidstr) != NULL".
/libvirt/src/conf/domain_conf.c:13795:
example_checked: "virHashLookup(snapshots->objs, def->name)" has its value checked in "virHashLookup(snapshots->objs, def->name) != NULL".
/libvirt/src/conf/nwfilter_params.c:606:
example_checked: "virHashLookup(table->hashTable, name)" has its value checked in "virHashLookup(table->hashTable, name)".
/libvirt/src/conf/nwfilter_params.c:390:
returned_null: Function "virHashLookup" returns null (checked 39 out of 46 times).
/libvirt/src/util/virhash.c:372:
return_null: Explicitly returning NULL.
/libvirt/src/conf/nwfilter_params.c:390:
var_assigned: Assigning: "varValue" = null return value from "virHashLookup".
/libvirt/src/conf/nwfilter_params.c:392:
dereference: Dereferencing a pointer that might be null "varValue" when calling "virNWFilterVarValueGetNthValue".
/libvirt/src/conf/nwfilter_params.c:157:
deref_parm: Directly dereferencing parameter "val".

Error: NULL_RETURNS:
/libvirt/src/conf/domain_conf.c:765:
example_assign: Assigning: "obj" = return value from "virHashLookup(doms->objs, uuidstr)".
/libvirt/src/conf/domain_conf.c:766:
example_checked: "obj" has its value checked in "obj".
/libvirt/src/conf/domain_conf.c:14296:
example_checked: "virHashLookup(paths, path)" has its value checked in "virHashLookup(paths, path)".
/libvirt/src/conf/domain_conf.c:12905:
example_checked: "virHashLookup(doms->objs, uuidstr)" has its value checked in "virHashLookup(doms->objs, uuidstr) != NULL".
/libvirt/src/conf/domain_conf.c:13795:
example_checked: "virHashLookup(snapshots->objs, def->name)" has its value checked in "virHashLookup(snapshots->objs, def->name) != NULL".
/libvirt/src/conf/nwfilter_params.c:606:
example_checked: "virHashLookup(table->hashTable, name)" has its value checked in "virHashLookup(table->hashTable, name)".
/libvirt/src/conf/nwfilter_params.c:398:
returned_null: Function "virHashLookup" returns null (checked 39 out of 46 times).
/libvirt/src/util/virhash.c:372:
return_null: Explicitly returning NULL.
/libvirt/src/conf/nwfilter_params.c:398:
var_assigned: Assigning: "tmp" = null return value from "virHashLookup".
/libvirt/src/conf/nwfilter_params.c:399:
dereference: Dereferencing a pointer that might be null "tmp" when calling "virNWFilterVarValueGetNthValue".
/libvirt/src/conf/nwfilter_params.c:157:
deref_parm: Directly dereferencing parameter "val".

Error: OVERRUN_STATIC:
/libvirt/src/locking/lock_driver_sanlock.c:158:
overrun-buffer-arg: Overrunning static array ""__LIBVIRT__DISKS__"" of size 19 bytes by passing it to a function which indexes it with argument "48UL" at byte position 47.

Error: RESOURCE_LEAK:
/libvirt/src/conf/nwfilter_conf.c:363:
alloc_fn: Calling allocation function "virNWFilterVarAccessParse".
/libvirt/src/conf/nwfilter_params.c:930:
alloc_arg: "virAlloc" allocates memory that is stored into "dest".
/libvirt/src/util/memory.c:101:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:101:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(1UL, size)".
/libvirt/src/conf/nwfilter_params.c:946:
return_alloc: Returning allocated memory "dest".
/libvirt/src/conf/nwfilter_conf.c:363:
var_assign: Assigning: "varAccess" =  storage returned from "virNWFilterVarAccessParse(var)".
/libvirt/src/conf/nwfilter_conf.c:369:
noescape: Variable "varAccess" is not freed or pointed-to in function "virNWFilterVarAccessEqual".
/libvirt/src/conf/nwfilter_params.c:897:57:
noescape: "virNWFilterVarAccessEqual" does not free or save its pointer parameter "b".
/libvirt/src/conf/nwfilter_conf.c:378:
leaked_storage: Variable "varAccess" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/qemu/qemu_hostdev.c:541:
alloc_fn: Calling allocation function "usbDeviceListNew".
/libvirt/src/util/hostusb.c:274:
alloc_arg: "virAlloc" allocates memory that is stored into "list".
/libvirt/src/util/memory.c:101:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:101:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(1UL, size)".
/libvirt/src/util/hostusb.c:279:
return_alloc: Returning allocated memory "list".
/libvirt/src/qemu/qemu_hostdev.c:541:
var_assign: Assigning: "list" =  storage returned from "usbDeviceListNew()".
/libvirt/src/qemu/qemu_hostdev.c:582:
noescape: Variable "list" is not freed or pointed-to in function "usbDeviceListAdd".
/libvirt/src/util/hostusb.c:298:33:
noescape: "usbDeviceListAdd" does not free or save its pointer parameter "list".
/libvirt/src/qemu/qemu_hostdev.c:562:
leaked_storage: Variable "list" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/esx/esx_vi.c:1893:
alloc_arg: Calling allocation function "esxVI_ObjectSpec_Alloc" on "objectSpec".
/libvirt/src/esx/esx_vi_types.generated.c:2065:
alloc_arg: "esxVI_Alloc" allocates memory that is stored into "*ptrptr".
/libvirt/src/esx/esx_vi.c:1626:
alloc_arg: "virAllocN" allocates memory that is stored into "*ptrptr".
/libvirt/src/util/memory.c:129:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:129:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(count, size)".
/libvirt/src/esx/esx_vi.c:2006:
leaked_storage: Variable "objectSpec" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/esx/esx_vi.c:1945:
alloc_arg: Calling allocation function "esxVI_PropertySpec_Alloc" on "propertySpec".
/libvirt/src/esx/esx_vi_types.generated.c:2693:
alloc_arg: "esxVI_Alloc" allocates memory that is stored into "*ptrptr".
/libvirt/src/esx/esx_vi.c:1626:
alloc_arg: "virAllocN" allocates memory that is stored into "*ptrptr".
/libvirt/src/util/memory.c:129:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:129:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(count, size)".
/libvirt/src/esx/esx_vi.c:2006:
leaked_storage: Variable "propertySpec" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/nodeinfo.c:629:
alloc_fn: Calling allocation function "fopen".
/libvirt/src/nodeinfo.c:629:
var_assign: Assigning: "cpuinfo" =  storage returned from "fopen("/proc/cpuinfo", "r")".
/libvirt/src/nodeinfo.c:638:
leaked_storage: Variable "cpuinfo" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/esx/esx_vi.c:3913:
alloc_arg: Calling allocation function "esxVI_ObjectSpec_Alloc" on "objectSpec".
/libvirt/src/esx/esx_vi_types.generated.c:2065:
alloc_arg: "esxVI_Alloc" allocates memory that is stored into "*ptrptr".
/libvirt/src/esx/esx_vi.c:1626:
alloc_arg: "virAllocN" allocates memory that is stored into "*ptrptr".
/libvirt/src/util/memory.c:129:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:129:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(count, size)".
/libvirt/src/esx/esx_vi.c:4075:
leaked_storage: Variable "objectSpec" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/esx/esx_vi.c:3920:
alloc_arg: Calling allocation function "esxVI_PropertySpec_Alloc" on "propertySpec".
/libvirt/src/esx/esx_vi_types.generated.c:2693:
alloc_arg: "esxVI_Alloc" allocates memory that is stored into "*ptrptr".
/libvirt/src/esx/esx_vi.c:1626:
alloc_arg: "virAllocN" allocates memory that is stored into "*ptrptr".
/libvirt/src/util/memory.c:129:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:129:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(count, size)".
/libvirt/src/esx/esx_vi.c:4075:
leaked_storage: Variable "propertySpec" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/vmx/vmx.c:2431:
alloc_fn: Calling allocation function "calloc".
/libvirt/src/vmx/vmx.c:2431:
var_assign: Assigning: "networkName" =  storage returned from "calloc(1UL, 1UL)".
/libvirt/src/vmx/vmx.c:2495:
leaked_storage: Variable "networkName" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/qemu/qemu_process.c:1816:
alloc_arg: Calling allocation function "virAllocN" on "cpumap".
/libvirt/src/util/memory.c:129:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:129:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(count, size)".
/libvirt/src/qemu/qemu_process.c:1827:
leaked_storage: Variable "cpumap" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/daemon/libvirtd.c:201:
open_fn: Calling opening function "open".
/libvirt/daemon/libvirtd.c:201:
var_assign: Assigning: "stdinfd" =  handle returned from "open("/dev/null", 0)".
/libvirt/daemon/libvirtd.c:205:
noescape: Variable "stdinfd" is not closed or saved in function "dup2".
/libvirt/daemon/libvirtd.c:222:
leaked_handle: Handle variable "stdinfd" going out of scope leaks the handle.

Error: RESOURCE_LEAK:
/libvirt/daemon/libvirtd.c:203:
open_fn: Calling opening function "open".
/libvirt/daemon/libvirtd.c:203:
var_assign: Assigning: "stdoutfd" =  handle returned from "open("/dev/null", 1)".
/libvirt/daemon/libvirtd.c:207:
noescape: Variable "stdoutfd" is not closed or saved in function "dup2".
/libvirt/daemon/libvirtd.c:209:
noescape: Variable "stdoutfd" is not closed or saved in function "dup2".
/libvirt/daemon/libvirtd.c:222:
leaked_handle: Handle variable "stdoutfd" going out of scope leaks the handle.

Error: RESOURCE_LEAK:
/libvirt/src/util/virnetlink.c:338:
alloc_arg: Calling allocation function "virAlloc" on "srv".
/libvirt/src/util/memory.c:101:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:101:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(1UL, size)".
/libvirt/src/util/virnetlink.c:343:
noescape: Variable "srv" is not freed or pointed-to in function "virMutexInit".
/libvirt/src/util/threads-pthread.c:49:30:
noescape: "virMutexInit" does not free or save its pointer parameter "m".
/libvirt/src/util/virnetlink.c:404:
leaked_storage: Variable "srv" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/src/qemu/qemu_driver.c:6951:
alloc_fn: Calling allocation function "calloc".
/libvirt/src/qemu/qemu_driver.c:6951:
var_assign: Assigning: "nodeset" =  storage returned from "calloc(1UL, 1UL)".
/libvirt/src/qemu/qemu_driver.c:6960:
noescape: Variable "nodeset" is not freed or pointed-to in function "virTypedParameterAssign".
/libvirt/src/qemu/qemu_driver.c:6980:
leaked_storage: Variable "nodeset" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/tests/qemuxml2argvtest.c:47:
alloc_arg: Calling allocation function "virAlloc" on "ret".
/libvirt/src/util/memory.c:101:
alloc_fn: Storage is returned from allocation function "calloc".
/libvirt/src/util/memory.c:101:
var_assign: Assigning: "*((void **)ptrptr)" = "calloc(1UL, size)".
/libvirt/tests/qemuxml2argvtest.c:54:
leaked_storage: Variable "ret" going out of scope leaks the storage it points to.

Error: RESOURCE_LEAK:
/libvirt/tests/commandtest.c:821:
open_fn: Calling opening function "open".
/libvirt/tests/commandtest.c:821:
var_assign: Assigning: "fd" =  handle returned from "open("/dev/null", 0)".
/libvirt/tests/commandtest.c:821:
noescape: Variable "fd" is not closed or saved in function "dup2".
/libvirt/tests/commandtest.c:826:
leaked_handle: Handle variable "fd" going out of scope leaks the handle.

Error: RESOURCE_LEAK:
/libvirt/tests/commandtest.c:821:
open_fn: Calling opening function "open".
/libvirt/tests/commandtest.c:821:
var_assign: Assigning: "fd" =  handle returned from "open("/dev/null", 0)".
/libvirt/tests/commandtest.c:821:
noescape: Variable "fd" is not closed or saved in function "dup2".
/libvirt/tests/commandtest.c:836:
overwrite_var: Overwriting handle "fd" in call "fd = 3" leaks the handle.

Error: RETURN_LOCAL:
/libvirt/gnulib/lib/careadlinkat.c:99:
local_ptr_assign_local: Assigning: "buffer" = "stack_buf" (address of local variable "stack_buf").
/libvirt/gnulib/lib/careadlinkat.c:103:
local_ptr_assign_ptr: Assigning: "buf" = "buffer".
/libvirt/gnulib/lib/careadlinkat.c:150:
return_local_addr_alias: Returning pointer "buf" which points to local variable "stack_buf".

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1880:
deref_ptr_in_call: Dereferencing pointer "machineName".
/libvirt/src/vbox/vbox_tmpl.c:1939:
check_after_deref: Dereferencing "machineName" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1880:
deref_ptr_in_call: Dereferencing pointer "machineName".
/libvirt/src/vbox/vbox_tmpl.c:1939:
check_after_deref: Dereferencing "machineName" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1880:
deref_ptr_in_call: Dereferencing pointer "machineName".
/libvirt/src/vbox/vbox_tmpl.c:1939:
check_after_deref: Dereferencing "machineName" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1384:
deref_ptr_in_call: Dereferencing pointer "machineNameUtf8".
/libvirt/src/vbox/vbox_tmpl.c:1409:
check_after_deref: Dereferencing "machineNameUtf8" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1384:
deref_ptr_in_call: Dereferencing pointer "machineNameUtf8".
/libvirt/src/vbox/vbox_tmpl.c:1409:
check_after_deref: Dereferencing "machineNameUtf8" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1384:
deref_ptr_in_call: Dereferencing pointer "machineNameUtf8".
/libvirt/src/vbox/vbox_tmpl.c:1409:
check_after_deref: Dereferencing "machineNameUtf8" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1880:
deref_ptr_in_call: Dereferencing pointer "machineName".
/libvirt/src/vbox/vbox_tmpl.c:1939:
check_after_deref: Dereferencing "machineName" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1880:
deref_ptr_in_call: Dereferencing pointer "machineName".
/libvirt/src/vbox/vbox_tmpl.c:1939:
check_after_deref: Dereferencing "machineName" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1880:
deref_ptr_in_call: Dereferencing pointer "machineName".
/libvirt/src/vbox/vbox_tmpl.c:1939:
check_after_deref: Dereferencing "machineName" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1384:
deref_ptr_in_call: Dereferencing pointer "machineNameUtf8".
/libvirt/src/vbox/vbox_tmpl.c:1409:
check_after_deref: Dereferencing "machineNameUtf8" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1384:
deref_ptr_in_call: Dereferencing pointer "machineNameUtf8".
/libvirt/src/vbox/vbox_tmpl.c:1409:
check_after_deref: Dereferencing "machineNameUtf8" before a null check.

Error: REVERSE_INULL:
/libvirt/src/vbox/vbox_tmpl.c:1384:
deref_ptr_in_call: Dereferencing pointer "machineNameUtf8".
/libvirt/src/vbox/vbox_tmpl.c:1409:
check_after_deref: Dereferencing "machineNameUtf8" before a null check.

Error: SIZEOF_MISMATCH:
/libvirt/tools/virsh.c:5365:
suspicious_sizeof: Passing argument "8UL /* sizeof (cpumap) */" to function "_vshCalloc" and then casting the return value to "unsigned char *" is suspicious.

Error: UNINIT:
/libvirt/src/util/command.c:247:
var_decl: Declaring variable "sig_action" without initializer.
/libvirt/src/util/command.c:327:
uninit_use_in_call: Using uninitialized value "sig_action": field "sig_action".sa_restorer is uninitialized when calling "sigaction".

Error: UNINIT:
/libvirt/src/lxc/lxc_driver.c:1412:
var_decl: Declaring variable "fd" without initializer.
/libvirt/src/lxc/lxc_driver.c:1460:
uninit_use_in_call: Using uninitialized value "fd" when calling "virFileClose".
/libvirt/src/util/virfile.c:50:
read_parm: Reading a parameter value.

Error: UNINIT:
/libvirt/tools/virsh.c:620:
var_decl: Declaring variable "sig_action" without initializer.
/libvirt/tools/virsh.c:626:
uninit_use_in_call: Using uninitialized value "sig_action": field "sig_action".sa_restorer is uninitialized when calling "sigaction".

Error: UNINIT:
/libvirt/src/lxc/lxc_controller.c:1104:
var_decl: Declaring variable "consoles" without initializer.
/libvirt/src/lxc/lxc_controller.c:1237:
uninit_use: Using uninitialized value "consoles".

Error: UNINIT:
/libvirt/tools/virsh.c:7246:
var_decl: Declaring variable "sig_action" without initializer.
/libvirt/tools/virsh.c:7263:
uninit_use_in_call: Using uninitialized value "sig_action": field "sig_action".sa_restorer is uninitialized when calling "sigaction".

Error: UNINIT:
/libvirt/src/rpc/virnetserver.c:283:
var_decl: Declaring variable "sig_action" without initializer.
/libvirt/src/rpc/virnetserver.c:297:
uninit_use_in_call: Using uninitialized value "sig_action": field "sig_action".sa_restorer is uninitialized when calling "sigaction".

Error: UNUSED_VALUE:
/libvirt/tools/virsh.c:9353:
returned_pointer: Pointer "br_node" returned by "virXPathNode("./bridge", ctxt)" is never used.

Error: UNUSED_VALUE:
/libvirt/tools/virsh.c:9358:
returned_pointer: Pointer "if_node" returned by "virXPathNode("./bridge/interface[2]", ctxt)" is never used.


More information about the libvir-list mailing list