[Libvir] memory error in another test

Jim Meyering jim at meyering.net
Wed Oct 17 13:45:42 UTC 2007


Running tests under valgrind exposed this:
(line numbers are slightly off, due to local changes)

==27876== ERROR SUMMARY: 32 errors from 2 contexts (suppressed: 5 from 2)
==27876==
==27876== 16 errors in context 1 of 2:
==27876== Conditional jump or move depends on uninitialised value(s)
==27876==    at 0x41BA18: qemudBuildCommandLine (qemu_conf.c:1871)
==27876==    by 0x406764: testCompareXMLToArgvFiles (qemuxml2argvtest.c:46)
==27876==    by 0x4069DA: testCompareXMLToArgvHelper (qemuxml2argvtest.c:97)
==27876==    by 0x406D60: virtTestRun (testutils.c:69)
==27876==    by 0x406A46: main (qemuxml2argvtest.c:114)
==27876==
==27876== 16 errors in context 2 of 2:
==27876== Conditional jump or move depends on uninitialised value(s)
==27876==    at 0x41AA45: qemudBuildCommandLine (qemu_conf.c:1606)
==27876==    by 0x406764: testCompareXMLToArgvFiles (qemuxml2argvtest.c:46)
==27876==    by 0x4069DA: testCompareXMLToArgvHelper (qemuxml2argvtest.c:97)
==27876==    by 0x406D60: virtTestRun (testutils.c:69)
==27876==    by 0x406A46: main (qemuxml2argvtest.c:114)

Both of those are due to uses of uninitialized vm->migrateFrom[0].

Here's the fix:

	Avoid memory error in a test program.
	* tests/qemuxml2argvtest.c (testCompareXMLToArgvFiles): Initialize
	vm.migrateFrom[0], to avoid "read-uninitialized" error
	from within qemudBuildCommandLine.

Index: tests/qemuxml2argvtest.c
===================================================================
RCS file: /data/cvs/libvirt/tests/qemuxml2argvtest.c,v
retrieving revision 1.5
diff -u -p -r1.5 qemuxml2argvtest.c
--- tests/qemuxml2argvtest.c	21 Sep 2007 21:20:32 -0000	1.5
+++ tests/qemuxml2argvtest.c	17 Oct 2007 13:42:15 -0000
@@ -40,6 +40,7 @@ static int testCompareXMLToArgvFiles(con
     vm.qemuVersion = 0 * 1000 * 100 + (8 * 1000) + 1;
     vm.qemuCmdFlags = QEMUD_CMD_FLAG_VNC_COLON |
         QEMUD_CMD_FLAG_NO_REBOOT;
+    vm.migrateFrom[0] = '\0';

     vmdef->vncActivePort = vmdef->vncPort;




More information about the libvir-list mailing list