From 745a9ed1b2426eb0c7ecb27edef3b97d6ccaecb9 Mon Sep 17 00:00:00 2001 From: Xuefer Date: Tue, 29 Aug 2006 11:11:42 +0000 Subject: [PATCH] avoid crash when OOM on mem_(calloc|realloc|strndup) git-svn-id: svn://svn.lighttpd.net/xcache/trunk@112 c26eb9a1-5813-0410-bd6c-c2e55f420ca7 --- mem.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mem.c b/mem.c index 065a6f2..faded80 100644 --- a/mem.c +++ b/mem.c @@ -241,22 +241,28 @@ void *xc_mem_calloc(xc_mem_t *mem, xc_memsize_t memb, xc_memsize_t size) /* {{{ xc_memsize_t realsize = memb * size; void *p = xc_mem_malloc(mem, realsize); - memset(p, 0, realsize); + if (p) { + memset(p, 0, realsize); + } return p; } /* }}} */ void *xc_mem_realloc(xc_mem_t *mem, const void *p, xc_memsize_t size) /* {{{ */ { void *newp = xc_mem_malloc(mem, size); - memcpy(newp, p, size); - xc_mem_free(mem, p); + if (p) { + memcpy(newp, p, size); + xc_mem_free(mem, p); + } return newp; } /* }}} */ char *xc_mem_strndup(xc_mem_t *mem, const char *str, xc_memsize_t len) /* {{{ */ { void *p = xc_mem_malloc(mem, len + 1); - memcpy(p, str, len + 1); + if (p) { + memcpy(p, str, len + 1); + } return p; } /* }}} */