diff --git a/src/util/hash.c b/src/util/hash.c index 754a87687c..c7a52c991c 100644 --- a/src/util/hash.c +++ b/src/util/hash.c @@ -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);