[libvirt] [PATCH 1/4] Use explicit boolean comparison in OOM check

Daniel P. Berrange berrange at redhat.com
Wed Feb 22 17:52:02 UTC 2017


GCC 7 gets upset by

   if (!tmp && (size * count))

warning

  util/viralloc.c: In function 'virReallocN':
  util/viralloc.c:246:23: error: '*' in boolean context, suggest '&&' instead [-Werror=int-in-bool-context]
     if (!tmp && (size * count)) {
                 ~~~~~~^~~~~~~~

Keep it happy by adding != 0 to the right hand expression
so it realizes we really are wanting to treat the result
of the arithmetic expression as a boolean

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 src/util/viralloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/util/viralloc.c b/src/util/viralloc.c
index 812aa5b..81f99d9 100644
--- a/src/util/viralloc.c
+++ b/src/util/viralloc.c
@@ -243,7 +243,7 @@ int virReallocN(void *ptrptr,
         return -1;
     }
     tmp = realloc(*(void**)ptrptr, size * count);
-    if (!tmp && (size * count)) {
+    if (!tmp && ((size * count) != 0)) {
         if (report)
             virReportOOMErrorFull(domcode, filename, funcname, linenr);
         return -1;
-- 
2.9.3




More information about the libvir-list mailing list