From 7adb3fb739513b9a1df806f8429080f2b80ec039 Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Tue, 15 Feb 2011 10:59:01 +0800 Subject: [PATCH] call virReportOOMError when appropriate in hash.c 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 | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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);