diff options
author | Patrick Monnerat <patrick@monnerat.net> | 2017-09-02 12:40:19 +0100 |
---|---|---|
committer | Patrick Monnerat <patrick@monnerat.net> | 2017-09-02 12:40:19 +0100 |
commit | 3b51fa6285303cb5b01c4bd5be1a544a877475e6 (patch) | |
tree | a958b5aa6c3e0b7c23f41ee7d40cbc18e525dd94 /lib | |
parent | 57001ce3bb97455d799f0a2180b7bf1287ffd71a (diff) |
http: fix a memory leakage in checkrtspprefix().
Diffstat (limited to 'lib')
-rw-r--r-- | lib/http.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/http.c b/lib/http.c index 3e3313278..cf50a7cac 100644 --- a/lib/http.c +++ b/lib/http.c @@ -2809,6 +2809,7 @@ static bool checkrtspprefix(struct Curl_easy *data, const char *s) { + bool result = FALSE; #ifdef CURL_DOES_CONVERSIONS /* convert from the network encoding using a scratch area */ @@ -2819,16 +2820,17 @@ checkrtspprefix(struct Curl_easy *data, } if(CURLE_OK != Curl_convert_from_network(data, scratch, strlen(s)+1)) { /* Curl_convert_from_network calls failf if unsuccessful */ - free(scratch); - return FALSE; /* can't return CURLE_foobar so return FALSE */ + result = FALSE; /* can't return CURLE_foobar so return FALSE */ } - s = scratch; + else + result = checkprefix("RTSP/", scratch)? TRUE: FALSE; + free(scratch); #else (void)data; /* unused */ + result = checkprefix("RTSP/", s)? TRUE: FALSE; #endif /* CURL_DOES_CONVERSIONS */ - if(checkprefix("RTSP/", s)) - return TRUE; - return FALSE; + + return result; } #endif /* CURL_DISABLE_RTSP */ |