X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/ded614f803f56ad979da76485e74732ecdcc57fd..e4f6b8c327eb8e1444b51ced96e59dc5e7294cf8:/src/sds.c diff --git a/src/sds.c b/src/sds.c index 343ad1fa..63507000 100644 --- a/src/sds.c +++ b/src/sds.c @@ -298,15 +298,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) { - *count = 0; - return NULL; - } + if (len == 0) { *count = 0; return tokens;