diff --git a/lib/escape.c b/lib/escape.c index b233600af..87d3a79e2 100644 --- a/lib/escape.c +++ b/lib/escape.c @@ -39,12 +39,16 @@ char *curl_escape(const char *string, int length) { size_t alloc = (length?(size_t)length:strlen(string))+1; - char *ns = malloc(alloc); + char *ns; char *testing_ptr = NULL; unsigned char in; size_t newlen = alloc; int strindex=0; + ns = malloc(alloc); + if(!ns) + return NULL; + length = alloc-1; while(length--) { in = *string; @@ -90,9 +94,8 @@ char *curl_unescape(const char *string, int length) int strindex=0; long hex; - if( !ns ) { + if( !ns ) return NULL; - } while(--alloc > 0) { in = *string;