summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Monnerat <patrick@monnerat.net>2017-09-02 12:40:19 +0100
committerPatrick Monnerat <patrick@monnerat.net>2017-09-02 12:40:19 +0100
commit3b51fa6285303cb5b01c4bd5be1a544a877475e6 (patch)
treea958b5aa6c3e0b7c23f41ee7d40cbc18e525dd94
parent57001ce3bb97455d799f0a2180b7bf1287ffd71a (diff)
downloadcurl-3b51fa6285303cb5b01c4bd5be1a544a877475e6.tar.gz
http: fix a memory leakage in checkrtspprefix().
-rw-r--r--lib/http.c14
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 */