]> xenbits.xensource.com Git - libvirt.git/commitdiff
call virReportOOMError when appropriate in hash.c
authorChristophe Fergeau <teuf@gnome.org>
Tue, 15 Feb 2011 02:59:01 +0000 (10:59 +0800)
committerDaniel Veillard <veillard@redhat.com>
Tue, 15 Feb 2011 02:59:01 +0000 (10:59 +0800)
A couple of allocation were not calling virReportOOMError on allocation
errors

* src/util/hash.c: add the needed call in virHashCreate and
  virHashAddOrUpdateEntry

src/util/hash.c

index 754a87687c1f05cb2023908de18134cada4da65b..c7a52c991c2c3816a64e5e81fb6983dfd8f8059a 100644 (file)
@@ -27,6 +27,8 @@
 #include "hash.h"
 #include "memory.h"
 
+#define VIR_FROM_THIS VIR_FROM_NONE
+
 #define MAX_HASH_LEN 8
 
 /* #define DEBUG_GROW */
@@ -88,12 +90,15 @@ virHashCreate(int size)
     if (size <= 0)
         size = 256;
 
-    if (VIR_ALLOC(table) < 0)
+    if (VIR_ALLOC(table) < 0) {
+        virReportOOMError();
         return NULL;
+    }
 
     table->size = size;
     table->nbElems = 0;
     if (VIR_ALLOC_N(table->table, size) < 0) {
+        virReportOOMError();
         VIR_FREE(table);
         return NULL;
     }
@@ -135,6 +140,7 @@ virHashGrow(virHashTablePtr table, int size)
         return (-1);
 
     if (VIR_ALLOC_N(table->table, size) < 0) {
+        virReportOOMError();
         table->table = oldtable;
         return (-1);
     }
@@ -278,12 +284,15 @@ virHashAddEntry(virHashTablePtr table, const char *name, void *userdata)
     if (insert == NULL) {
         entry = &(table->table[key]);
     } else {
-        if (VIR_ALLOC(entry) < 0)
+        if (VIR_ALLOC(entry) < 0) {
+            virReportOOMError();
             return (-1);
+        }
     }
 
     new_name = strdup(name);
     if (new_name == NULL) {
+        virReportOOMError();
         if (insert != NULL)
             VIR_FREE(entry);
         return (-1);