From 6e258c76bff6e3a19adc2c8e412bb83f6875609d Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Wed, 27 Apr 2011 14:32:56 +0200 Subject: [PATCH] Check seplen and len before malloc'ing "tokens" --- src/sds.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sds.c b/src/sds.c index db4126e2..c2a3f587 100644 --- a/src/sds.c +++ b/src/sds.c @@ -296,12 +296,17 @@ int sdscmp(sds s1, sds s2) { */ sds *sdssplitlen(char *s, int len, char *sep, int seplen, int *count) { int elements = 0, slots = 5, start = 0, j; + sds *tokens; - sds *tokens = zmalloc(sizeof(sds)*slots); + if (seplen < 1 || len < 0) return NULL; + + tokens = zmalloc(sizeof(sds)*slots); #ifdef SDS_ABORT_ON_OOM if (tokens == NULL) sdsOomAbort(); +#else + if (tokens == NULL) return NULL; #endif - if (seplen < 1 || len < 0 || tokens == NULL) return NULL; + if (len == 0) { *count = 0; return tokens;