From 5a23c86dc14d4a8cd54fe0956a1e3d5ed6ad2dc0 Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Tue, 28 Jan 2014 10:54:57 +0900 Subject: [PATCH] Added null pointer check. --- src/msgpack/vrefbuffer.h | 1 + src/msgpack/zbuffer.h | 1 + src/zone.c | 7 +++++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/msgpack/vrefbuffer.h b/src/msgpack/vrefbuffer.h index ec748096..b228b048 100644 --- a/src/msgpack/vrefbuffer.h +++ b/src/msgpack/vrefbuffer.h @@ -98,6 +98,7 @@ void msgpack_vrefbuffer_clear(msgpack_vrefbuffer* vref); static inline msgpack_vrefbuffer* msgpack_vrefbuffer_new(size_t ref_size, size_t chunk_size) { msgpack_vrefbuffer* vbuf = (msgpack_vrefbuffer*)malloc(sizeof(msgpack_vrefbuffer)); + if (vbuf == NULL) return NULL; if(!msgpack_vrefbuffer_init(vbuf, ref_size, chunk_size)) { free(vbuf); return NULL; diff --git a/src/msgpack/zbuffer.h b/src/msgpack/zbuffer.h index efdd3049..421d6c35 100644 --- a/src/msgpack/zbuffer.h +++ b/src/msgpack/zbuffer.h @@ -91,6 +91,7 @@ void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf) msgpack_zbuffer* msgpack_zbuffer_new(int level, size_t init_size) { msgpack_zbuffer* zbuf = (msgpack_zbuffer*)malloc(sizeof(msgpack_zbuffer)); + if (zbuf == NULL) return NULL; if(!msgpack_zbuffer_init(zbuf, level, init_size)) { free(zbuf); return NULL; diff --git a/src/zone.c b/src/zone.c index eba65372..3ddaaf8f 100644 --- a/src/zone.c +++ b/src/zone.c @@ -84,9 +84,12 @@ void* msgpack_zone_malloc_expand(msgpack_zone* zone, size_t size) msgpack_zone_chunk* chunk = (msgpack_zone_chunk*)malloc( sizeof(msgpack_zone_chunk) + sz); - + if (chunk == NULL) return NULL; char* ptr = ((char*)chunk) + sizeof(msgpack_zone_chunk); - + if (ptr == NULL) { + free(chunk); + return NULL; + } chunk->next = cl->head; cl->head = chunk; cl->free = sz - size;