]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix crash in remoteDispatchDomainMemoryStats (CVE-2013-4296)
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 3 Sep 2013 15:52:06 +0000 (16:52 +0100)
committerEric Blake <eblake@redhat.com>
Wed, 18 Sep 2013 19:29:44 +0000 (13:29 -0600)
The 'stats' variable was not initialized to NULL, so if some
early validation of the RPC call fails, it is possible to jump
to the 'cleanup' label and VIR_FREE an uninitialized pointer.
This is a security flaw, since the API can be called from a
readonly connection which can trigger the validation checks.

This was introduced in release v0.9.1 onwards by

  commit 158ba8730e44b7dd07a21ab90499996c5dec080a
  Author: Daniel P. Berrange <berrange@redhat.com>
  Date:   Wed Apr 13 16:21:35 2011 +0100

    Merge all returns paths from dispatcher into single path

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
(cherry picked from commit e7f400a110e2e3673b96518170bfea0855dd82c0)

daemon/remote.c

index 8329c7c08dac488e10ad61e1ba6ab2bd7f9ddd17..14fd0e54862c3cd191e1ca7dcb6081a0d005f9c0 100644 (file)
@@ -1139,7 +1139,7 @@ remoteDispatchDomainMemoryStats(virNetServerPtr server ATTRIBUTE_UNUSED,
                                 remote_domain_memory_stats_ret *ret)
 {
     virDomainPtr dom = NULL;
-    struct _virDomainMemoryStat *stats;
+    struct _virDomainMemoryStat *stats = NULL;
     int nr_stats;
     size_t i;
     int rv = -1;