virt plugin: fix segfault on error path
authorRuben Kerkhof <ruben@rubenkerkhof.com>
Tue, 4 Sep 2018 10:48:12 +0000 (12:48 +0200)
committerRuben Kerkhof <ruben@rubenkerkhof.com>
Tue, 4 Sep 2018 11:10:35 +0000 (13:10 +0200)
The libvirt plugin refreshes its list of domains every RefreshInterval
seconds. If a domain crashes after getting the list, getting the stats
for its block devices returns an error. We then try to call
virDomainGetName on an invalid pointer. Fix this.

src/virt.c

index 174db2f..39165bc 100644 (file)
@@ -1636,7 +1636,7 @@ static int lv_read(user_data_t *ud) {
       ERROR(PLUGIN_NAME
             " failed to get stats for block device (%s) in domain %s",
             state->block_devices[i].path,
-            virDomainGetName(state->domains[i].ptr));
+            virDomainGetName(state->block_devices[i].dom));
   }
 
   /* Get interface stats for each domain. */