From: Martin Willi Date: Mon, 16 Aug 2010 13:11:51 +0000 (+0200) Subject: Properly handle zero length in chunk_alloc[a]/chunk_clone[a] X-Git-Tag: 4.5.0~480 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=806ec8b1d6e56c5d35f8dde80449399fd86186db;p=thirdparty%2Fstrongswan.git Properly handle zero length in chunk_alloc[a]/chunk_clone[a] --- diff --git a/src/libstrongswan/chunk.h b/src/libstrongswan/chunk.h index 5441ccf3ce..f94bdfbf25 100644 --- a/src/libstrongswan/chunk.h +++ b/src/libstrongswan/chunk.h @@ -193,12 +193,12 @@ static inline void chunk_clear(chunk_t *chunk) /** * Allocate a chunk on the heap */ -#define chunk_alloc(bytes) ({size_t x = (bytes); chunk_create(malloc(x), x);}) +#define chunk_alloc(bytes) ({size_t x = (bytes); chunk_create(x ? malloc(x) : NULL, x);}) /** * Allocate a chunk on the stack */ -#define chunk_alloca(bytes) ({size_t x = (bytes); chunk_create(alloca(x), x);}) +#define chunk_alloca(bytes) ({size_t x = (bytes); chunk_create(x ? alloca(x) : NULL, x);}) /** * Clone a chunk on heap @@ -208,7 +208,7 @@ static inline void chunk_clear(chunk_t *chunk) /** * Clone a chunk on stack */ -#define chunk_clonea(chunk) ({chunk_t x = (chunk); chunk_create_clone(alloca(x.len), x);}) +#define chunk_clonea(chunk) ({chunk_t x = (chunk); chunk_create_clone(x.len ? alloca(x.len) : NULL, x);}) /** * Concatenate chunks into a chunk on heap