From 2aed9a97f86ed2fd868ca3240c07076e116ced7b Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 19 Apr 2012 16:51:11 +0800 Subject: [PATCH] virsh: avoid uninitialized memory usage Detected by valgrind, via Alex Jia. Caused by imcomplete copy-and-paste from vshWatchJob in commit 3b96a892. * tools/virsh.c (cmdBlockPull): fix uninitialized memory usage. * How to reproduce? $ qemu-img create /var/lib/libvirt/images/test 1M $ cat > /tmp/test.xml < test 219200 1 hvm EOF $ virsh define /tmp/test.xml $ valgrind -v virsh blockpull test /var/lib/libvirt/images/test --wait actual result: ==10906== 1 errors in context 1 of 1: ==10906== Syscall param rt_sigaction(act->sa_flags) points to uninitialised byte(s) ==10906== at 0x39CF80F5BE: __libc_sigaction (sigaction.c:67) ==10906== by 0x43016C: cmdBlockPull (virsh.c:7638) ==10906== by 0x4150D4: vshCommandRun (virsh.c:18574) ==10906== by 0x425E73: main (virsh.c:20178) ==10906== Address 0x7fefffae8 is on thread 1's stack --- tools/virsh.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/virsh.c b/tools/virsh.c index 95ed7bc273..8a57d9aecb 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -7634,6 +7634,7 @@ cmdBlockPull(vshControl *ctl, const vshCmd *cmd) intCaught = 0; sig_action.sa_sigaction = vshCatchInt; + sig_action.sa_flags = SA_SIGINFO; sigemptyset(&sig_action.sa_mask); sigaction(SIGINT, &sig_action, &old_sig_action);