Check seplen and len before malloc'ing "tokens"

This commit is contained in:
Pieter Noordhuis 2011-04-27 14:32:56 +02:00
parent bf9fd5ffa2
commit c040cbd625

View File

@ -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;