[libvirt] [PATCH v1 02/37] Introduce OOM reporting to virAsprintf

Michal Privoznik mprivozn at redhat.com
Thu Jul 4 12:06:25 UTC 2013


Actually, I'm turning this function into a macro as filename,
function name and line number needs to be passed. The new
function virAsprintfInternal is introduced with the extended set
of arguments.
---
 cfg.mk                            |  2 +-
 src/conf/domain_audit.c           | 36 ++++++++++-----------
 src/driver.c                      |  4 +--
 src/libvirt_private.syms          |  4 +--
 src/util/virerror.c               |  2 +-
 src/util/virstring.c              | 36 ++++++++++++---------
 src/util/virstring.h              | 67 +++++++++++++++++++++++++++++++++++----
 tests/domainsnapshotxml2xmltest.c |  2 ++
 tests/fchosttest.c                |  2 ++
 tests/interfacexml2xmltest.c      |  2 ++
 tests/lxcxml2xmltest.c            |  2 ++
 tests/networkxml2xmltest.c        |  2 ++
 tests/nodedevxml2xmltest.c        |  2 ++
 tests/nodeinfotest.c              |  2 ++
 tests/nwfilterxml2xmltest.c       |  2 ++
 tests/qemuargv2xmltest.c          |  2 ++
 tests/qemuhelptest.c              |  2 ++
 tests/qemuxml2xmltest.c           |  2 ++
 tests/sexpr2xmltest.c             |  2 ++
 tests/storagepoolxml2xmltest.c    |  2 ++
 tests/storagevolxml2argvtest.c    |  2 ++
 tests/storagevolxml2xmltest.c     |  2 ++
 tests/sysinfotest.c               |  2 ++
 tests/virbuftest.c                |  2 ++
 tests/virhashtest.c               |  2 ++
 tests/virshtest.c                 |  2 ++
 tests/xencapstest.c               |  2 ++
 tests/xml2sexprtest.c             |  2 ++
 tools/virt-host-validate-common.c |  2 ++
 29 files changed, 150 insertions(+), 45 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index bbe84b3..1b118a9 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -899,7 +899,7 @@ exclude_file_name_regexp--sc_prohibit_always_true_header_tests = \
   ^python/(libvirt-(lxc-|qemu-)?override|typewrappers)\.c$$
 
 exclude_file_name_regexp--sc_prohibit_asprintf = \
-  ^(bootstrap.conf$$|src/util/virstring\.c$$|examples/domain-events/events-c/event-test\.c$$|tests/vircgroupmock\.c$$)
+  ^(bootstrap.conf$$|src/util/virstring\.[ch]$$|examples/domain-events/events-c/event-test\.c$$|tests/vircgroupmock\.c$$)
 
 exclude_file_name_regexp--sc_prohibit_strdup = \
   ^(docs/|examples/|python/|src/util/virstring\.c$$)
diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c
index 97e71f7..e53daf8 100644
--- a/src/conf/domain_audit.c
+++ b/src/conf/domain_audit.c
@@ -46,7 +46,7 @@ virDomainAuditGetRdev(const char *path)
         (S_ISCHR(sb.st_mode) || S_ISBLK(sb.st_mode))) {
         int maj = major(sb.st_rdev);
         int min = minor(sb.st_rdev);
-        ignore_value(virAsprintf(&ret, "%02X:%02X", maj, min));
+        ignore_value(virAsprintfQuiet(&ret, "%02X:%02X", maj, min));
     }
     return ret;
 }
@@ -382,29 +382,29 @@ virDomainAuditHostdev(virDomainObjPtr vm, virDomainHostdevDefPtr hostdev,
     case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS:
         switch (hostdev->source.subsys.type) {
         case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
-            if (virAsprintf(&address, "%.4x:%.2x:%.2x.%.1x",
-                            hostdev->source.subsys.u.pci.addr.domain,
-                            hostdev->source.subsys.u.pci.addr.bus,
-                            hostdev->source.subsys.u.pci.addr.slot,
-                            hostdev->source.subsys.u.pci.addr.function) < 0) {
+            if (virAsprintfQuiet(&address, "%.4x:%.2x:%.2x.%.1x",
+                                 hostdev->source.subsys.u.pci.addr.domain,
+                                 hostdev->source.subsys.u.pci.addr.bus,
+                                 hostdev->source.subsys.u.pci.addr.slot,
+                                 hostdev->source.subsys.u.pci.addr.function) < 0) {
                 VIR_WARN("OOM while encoding audit message");
                 goto cleanup;
             }
             break;
         case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB:
-            if (virAsprintf(&address, "%.3d.%.3d",
-                            hostdev->source.subsys.u.usb.bus,
-                            hostdev->source.subsys.u.usb.device) < 0) {
+            if (virAsprintfQuiet(&address, "%.3d.%.3d",
+                                 hostdev->source.subsys.u.usb.bus,
+                                 hostdev->source.subsys.u.usb.device) < 0) {
                 VIR_WARN("OOM while encoding audit message");
                 goto cleanup;
             }
             break;
         case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI:
-            if (virAsprintf(&address, "%s:%d:%d:%d",
-                            hostdev->source.subsys.u.scsi.adapter,
-                            hostdev->source.subsys.u.scsi.bus,
-                            hostdev->source.subsys.u.scsi.target,
-                            hostdev->source.subsys.u.scsi.unit) < 0) {
+            if (virAsprintfQuiet(&address, "%s:%d:%d:%d",
+                                 hostdev->source.subsys.u.scsi.adapter,
+                                 hostdev->source.subsys.u.scsi.bus,
+                                 hostdev->source.subsys.u.scsi.target,
+                                 hostdev->source.subsys.u.scsi.unit) < 0) {
                 VIR_WARN("OOM while encoding audit message");
                 goto cleanup;
             }
@@ -654,8 +654,8 @@ virDomainAuditCgroupMajor(virDomainObjPtr vm, virCgroupPtr cgroup,
 {
     char *extra;
 
-    if (virAsprintf(&extra, "major category=%s maj=%02X acl=%s",
-                    name, maj, perms) < 0) {
+    if (virAsprintfQuiet(&extra, "major category=%s maj=%02X acl=%s",
+                         name, maj, perms) < 0) {
         VIR_WARN("OOM while encoding audit message");
         return;
     }
@@ -693,8 +693,8 @@ virDomainAuditCgroupPath(virDomainObjPtr vm, virCgroupPtr cgroup,
     rdev = virDomainAuditGetRdev(path);
 
     if (!(detail = virAuditEncode("path", path)) ||
-        virAsprintf(&extra, "path %s rdev=%s acl=%s",
-                    detail, VIR_AUDIT_STR(rdev), perms) < 0) {
+        virAsprintfQuiet(&extra, "path %s rdev=%s acl=%s",
+                         detail, VIR_AUDIT_STR(rdev), perms) < 0) {
         VIR_WARN("OOM while encoding audit message");
         goto cleanup;
     }
diff --git a/src/driver.c b/src/driver.c
index c35fcd2..a08dd34 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -65,7 +65,7 @@ virDriverLoadModule(const char *name)
 
     VIR_DEBUG("Module load %s", name);
 
-    if (virAsprintf(&modfile, "%s/libvirt_driver_%s.so", moddir, name) < 0)
+    if (virAsprintfQuiet(&modfile, "%s/libvirt_driver_%s.so", moddir, name) < 0)
         return NULL;
 
     if (access(modfile, R_OK) < 0) {
@@ -79,7 +79,7 @@ virDriverLoadModule(const char *name)
         goto cleanup;
     }
 
-    if (virAsprintf(&regfunc, "%sRegister", name) < 0) {
+    if (virAsprintfQuiet(&regfunc, "%sRegister", name) < 0) {
         goto cleanup;
     }
 
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 6df5500..59583ec 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1871,7 +1871,7 @@ virStorageFileResize;
 
 # util/virstring.h
 virArgvToString;
-virAsprintf;
+virAsprintfInternal;
 virSkipSpaces;
 virSkipSpacesAndBackslash;
 virSkipSpacesBackwards;
@@ -1892,7 +1892,7 @@ virStrToLong_ui;
 virStrToLong_ul;
 virStrToLong_ull;
 virTrimSpaces;
-virVasprintf;
+virVasprintfInternal;
 
 
 # util/virsysinfo.h
diff --git a/src/util/virerror.c b/src/util/virerror.c
index e238dce..ce3ab85 100644
--- a/src/util/virerror.c
+++ b/src/util/virerror.c
@@ -674,7 +674,7 @@ virRaiseErrorFull(const char *filename ATTRIBUTE_UNUSED,
     } else {
         va_list ap;
         va_start(ap, fmt);
-        ignore_value(virVasprintf(&str, fmt, ap));
+        ignore_value(virVasprintfQuiet(&str, fmt, ap));
         va_end(ap);
     }
 
diff --git a/src/util/virstring.c b/src/util/virstring.c
index 1937f82..6fc015b 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -321,35 +321,41 @@ virStrToDouble(char const *s,
     return 0;
 }
 
-/**
- * virVasprintf
- *
- * like glibc's vasprintf but makes sure *strp == NULL on failure
- */
 int
-virVasprintf(char **strp, const char *fmt, va_list list)
+virVasprintfInternal(bool report,
+                     int domcode,
+                     const char *filename,
+                     const char *funcname,
+                     size_t linenr,
+                     char **strp,
+                     const char *fmt,
+                     va_list list)
 {
     int ret;
 
-    if ((ret = vasprintf(strp, fmt, list)) == -1)
+    if ((ret = vasprintf(strp, fmt, list)) == -1) {
+        if (report)
+            virReportOOMErrorFull(domcode, filename, funcname, linenr);
         *strp = NULL;
-
+    }
     return ret;
 }
 
-/**
- * virAsprintf
- *
- * like glibc's_asprintf but makes sure *strp == NULL on failure
- */
 int
-virAsprintf(char **strp, const char *fmt, ...)
+virAsprintfInternal(bool report,
+                    int domcode,
+                    const char *filename,
+                    const char *funcname,
+                    size_t linenr,
+                    char **strp,
+                    const char *fmt, ...)
 {
     va_list ap;
     int ret;
 
     va_start(ap, fmt);
-    ret = virVasprintf(strp, fmt, ap);
+    ret = virVasprintfInternal(report, domcode, filename,
+                               funcname, linenr, strp, fmt, ap);
     va_end(ap);
     return ret;
 }
diff --git a/src/util/virstring.h b/src/util/virstring.h
index 34ffae1..8b66b23 100644
--- a/src/util/virstring.h
+++ b/src/util/virstring.h
@@ -76,12 +76,6 @@ void virTrimSpaces(char *str, char **endp) ATTRIBUTE_NONNULL(1);
 void virSkipSpacesBackwards(const char *str, char **endp)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
-int virAsprintf(char **strp, const char *fmt, ...)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_FMT_PRINTF(2, 3)
-    ATTRIBUTE_RETURN_CHECK;
-int virVasprintf(char **strp, const char *fmt, va_list list)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_FMT_PRINTF(2, 0)
-    ATTRIBUTE_RETURN_CHECK;
 char *virStrncpy(char *dest, const char *src, size_t n, size_t destbytes)
     ATTRIBUTE_RETURN_CHECK;
 char *virStrcpy(char *dest, const char *src, size_t destbytes)
@@ -96,6 +90,16 @@ int virStrdup(char **dest, const char *src, bool report, int domcode,
 int virStrndup(char **dest, const char *src, ssize_t n, bool report, int domcode,
                const char *filename, const char *funcname, size_t linenr)
     ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1);
+int virAsprintfInternal(bool report, int domcode, const char *filename,
+                        const char *funcname, size_t linenr, char **strp,
+                        const char *fmt, ...)
+    ATTRIBUTE_NONNULL(6) ATTRIBUTE_NONNULL(7) ATTRIBUTE_FMT_PRINTF(7, 8)
+    ATTRIBUTE_RETURN_CHECK;
+int virVasprintfInternal(bool report, int domcode, const char *filename,
+                         const char *funcname, size_t linenr, char **strp,
+                         const char *fmt, va_list list)
+    ATTRIBUTE_NONNULL(6) ATTRIBUTE_NONNULL(7) ATTRIBUTE_FMT_PRINTF(7, 0)
+    ATTRIBUTE_RETURN_CHECK;
 
 /**
  * VIR_STRDUP:
@@ -166,4 +170,55 @@ int virStrndup(char **dest, const char *src, ssize_t n, bool report, int domcode
 
 size_t virStringListLength(char **strings);
 
+/**
+ * virVasprintf
+ *
+ * Like glibc's vasprintf but makes sure *strp == NULL on failure, in which
+ * case the OOM error is reported too.
+ *
+ * Returns -1 on failure (with OOM error reported), 0 on success.
+ */
+# define virVasprintf(strp, fmt, list) \
+    virVasprintfInternal(true, VIR_FROM_THIS, __FILE__, __FUNCTION__, \
+                         __LINE__, strp, fmt, list)
+
+/**
+ * virVasprintfQuiet
+ *
+ * Like glibc's vasprintf but makes sure *strp == NULL on failure.
+ *
+ * Returns -1 on failure, 0 on success.
+ */
+# define virVasprintfQuiet(strp, fmt, list) \
+    virVasprintfInternal(false, 0, NULL, NULL, 0, strp, fmt, list)
+
+/**
+ * virAsprintf:
+ * @strp: variable to hold result (char **)
+ * @fmt: printf format
+ *
+ * Like glibc's_asprintf but makes sure *strp == NULL on failure, in which case
+ * the OOM error is reported too.
+ *
+ * Returns -1 on failure (with OOM error reported), 0 on success.
+ */
+
+# define virAsprintf(strp, ...) \
+    virAsprintfInternal(true, VIR_FROM_THIS, __FILE__, __FUNCTION__, __LINE__, \
+                        strp, __VA_ARGS__)
+
+/**
+ * virAsprintfQuiet:
+ * @strp: variable to hold result (char **)
+ * @fmt: printf format
+ *
+ * Like glibc's_asprintf but makes sure *strp == NULL on failure.
+ *
+ * Returns -1 on failure, 0 on success.
+ */
+
+# define virAsprintfQuiet(strp, ...) \
+    virAsprintfInternal(false, 0, NULL, NULL, 0, \
+                        strp, __VA_ARGS__)
+
 #endif /* __VIR_STRING_H__ */
diff --git a/tests/domainsnapshotxml2xmltest.c b/tests/domainsnapshotxml2xmltest.c
index 9eddf45..defa955 100644
--- a/tests/domainsnapshotxml2xmltest.c
+++ b/tests/domainsnapshotxml2xmltest.c
@@ -18,6 +18,8 @@
 # include "testutilsqemu.h"
 # include "virstring.h"
 
+# define VIR_FROM_THIS VIR_FROM_NONE
+
 static virQEMUDriver driver;
 
 static int
diff --git a/tests/fchosttest.c b/tests/fchosttest.c
index 76d1795..05ff20b 100644
--- a/tests/fchosttest.c
+++ b/tests/fchosttest.c
@@ -23,6 +23,8 @@
 #include "virutil.h"
 #include "testutils.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static char *fchost_prefix;
 
 #define TEST_FC_HOST_PREFIX fchost_prefix
diff --git a/tests/interfacexml2xmltest.c b/tests/interfacexml2xmltest.c
index 9d86198..8092a59 100644
--- a/tests/interfacexml2xmltest.c
+++ b/tests/interfacexml2xmltest.c
@@ -14,6 +14,8 @@
 #include "testutilsqemu.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static int
 testCompareXMLToXMLFiles(const char *xml)
 {
diff --git a/tests/lxcxml2xmltest.c b/tests/lxcxml2xmltest.c
index 97f792c..ca05d29 100644
--- a/tests/lxcxml2xmltest.c
+++ b/tests/lxcxml2xmltest.c
@@ -17,6 +17,8 @@
 # include "testutilslxc.h"
 # include "virstring.h"
 
+# define VIR_FROM_THIS VIR_FROM_NONE
+
 static virCapsPtr caps;
 static virDomainXMLOptionPtr xmlopt;
 
diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c
index 5eca143..0dfed16 100644
--- a/tests/networkxml2xmltest.c
+++ b/tests/networkxml2xmltest.c
@@ -14,6 +14,8 @@
 #include "testutilsqemu.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static int
 testCompareXMLToXMLFiles(const char *inxml, const char *outxml,
                          unsigned int flags)
diff --git a/tests/nodedevxml2xmltest.c b/tests/nodedevxml2xmltest.c
index ed49857..d4f7ee7 100644
--- a/tests/nodedevxml2xmltest.c
+++ b/tests/nodedevxml2xmltest.c
@@ -14,6 +14,8 @@
 #include "testutilsqemu.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static int
 testCompareXMLToXMLFiles(const char *xml)
 {
diff --git a/tests/nodeinfotest.c b/tests/nodeinfotest.c
index bce56f3..def366c 100644
--- a/tests/nodeinfotest.c
+++ b/tests/nodeinfotest.c
@@ -11,6 +11,8 @@
 #include "virfile.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 #if ! (defined __linux__  &&  (defined(__x86_64__) || \
                                defined(__amd64__)  || \
                                defined(__i386__)  || \
diff --git a/tests/nwfilterxml2xmltest.c b/tests/nwfilterxml2xmltest.c
index 158bc9f..5476284 100644
--- a/tests/nwfilterxml2xmltest.c
+++ b/tests/nwfilterxml2xmltest.c
@@ -17,6 +17,8 @@
 #include "testutilsqemu.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static int
 testCompareXMLToXMLFiles(const char *inxml, const char *outxml,
                          bool expect_error)
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c
index 652cd09..5cf7828 100644
--- a/tests/qemuargv2xmltest.c
+++ b/tests/qemuargv2xmltest.c
@@ -17,6 +17,8 @@
 # include "testutilsqemu.h"
 # include "virstring.h"
 
+# define VIR_FROM_THIS VIR_FROM_NONE
+
 static virQEMUDriver driver;
 
 static int blankProblemElements(char *data)
diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c
index 2a3b019..3826849 100644
--- a/tests/qemuhelptest.c
+++ b/tests/qemuhelptest.c
@@ -11,6 +11,8 @@
 # include "viralloc.h"
 # include "virstring.h"
 
+# define VIR_FROM_THIS VIR_FROM_NONE
+
 struct testInfo {
     const char *name;
     virQEMUCapsPtr flags;
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 65e9591..50eb318 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -18,6 +18,8 @@
 # include "testutilsqemu.h"
 # include "virstring.h"
 
+# define VIR_FROM_THIS VIR_FROM_NONE
+
 static virQEMUDriver driver;
 
 static int
diff --git a/tests/sexpr2xmltest.c b/tests/sexpr2xmltest.c
index f4d119e..eafefda 100644
--- a/tests/sexpr2xmltest.c
+++ b/tests/sexpr2xmltest.c
@@ -14,6 +14,8 @@
 #include "testutilsxen.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static virCapsPtr caps;
 
 static int
diff --git a/tests/storagepoolxml2xmltest.c b/tests/storagepoolxml2xmltest.c
index 0376e63..53a7f83 100644
--- a/tests/storagepoolxml2xmltest.c
+++ b/tests/storagepoolxml2xmltest.c
@@ -14,6 +14,8 @@
 #include "testutilsqemu.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static int
 testCompareXMLToXMLFiles(const char *inxml, const char *outxml)
 {
diff --git a/tests/storagevolxml2argvtest.c b/tests/storagevolxml2argvtest.c
index 6a6c8e3..89c233f 100644
--- a/tests/storagevolxml2argvtest.c
+++ b/tests/storagevolxml2argvtest.c
@@ -7,6 +7,8 @@
 #include "testutilsqemu.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 const char create_tool[] = "qemu-img";
 
 static int
diff --git a/tests/storagevolxml2xmltest.c b/tests/storagevolxml2xmltest.c
index e87b016..05d2306 100644
--- a/tests/storagevolxml2xmltest.c
+++ b/tests/storagevolxml2xmltest.c
@@ -14,6 +14,8 @@
 #include "testutilsqemu.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static int
 testCompareXMLToXMLFiles(const char *poolxml, const char *inxml,
                          const char *outxml)
diff --git a/tests/sysinfotest.c b/tests/sysinfotest.c
index dc0451b..ba57a7a 100644
--- a/tests/sysinfotest.c
+++ b/tests/sysinfotest.c
@@ -36,6 +36,8 @@
 #include "virfile.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 #if defined (__linux__)
 
 # if defined(__s390__) || defined(__s390x__) || \
diff --git a/tests/virbuftest.c b/tests/virbuftest.c
index 3938f0d..febe6e4 100644
--- a/tests/virbuftest.c
+++ b/tests/virbuftest.c
@@ -10,6 +10,8 @@
 #include "viralloc.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 #define TEST_ERROR(...)                             \
     do {                                            \
         if (virTestGetDebug())                      \
diff --git a/tests/virhashtest.c b/tests/virhashtest.c
index f36fc76..9b7fcbb 100644
--- a/tests/virhashtest.c
+++ b/tests/virhashtest.c
@@ -13,6 +13,8 @@
 #include "virlog.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 #define testError(...)                                          \
     do {                                                        \
         char *str;                                              \
diff --git a/tests/virshtest.c b/tests/virshtest.c
index fad6774..ca35bb0 100644
--- a/tests/virshtest.c
+++ b/tests/virshtest.c
@@ -9,6 +9,8 @@
 #include "testutils.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 #ifdef WIN32
 
 int
diff --git a/tests/xencapstest.c b/tests/xencapstest.c
index 8bdd6cd..9de3919 100644
--- a/tests/xencapstest.c
+++ b/tests/xencapstest.c
@@ -12,6 +12,8 @@
 #include "virfile.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static int
 testCompareFiles(virArch hostmachine, const char *xml_rel,
                  const char *cpuinfo_rel, const char *capabilities_rel)
diff --git a/tests/xml2sexprtest.c b/tests/xml2sexprtest.c
index ec196c4..87ac2c3 100644
--- a/tests/xml2sexprtest.c
+++ b/tests/xml2sexprtest.c
@@ -16,6 +16,8 @@
 #include "testutilsxen.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static virCapsPtr caps;
 static virDomainXMLOptionPtr xmlopt;
 
diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c
index c17c257..496324e 100644
--- a/tools/virt-host-validate-common.c
+++ b/tools/virt-host-validate-common.c
@@ -33,6 +33,8 @@
 #include "virt-host-validate-common.h"
 #include "virstring.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 static bool quiet;
 
 void virHostMsgSetQuiet(bool quietFlag)
-- 
1.8.1.5




More information about the libvir-list mailing list