aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2012-06-15 22:51:45 +0200
committerDaniel Stenberg <daniel@haxx.se>2012-06-15 22:51:45 +0200
commit220776de6b06c3350fac5fe78d8a2f68e894fe90 (patch)
treefcf71262b3fa6b85b870269f833e9b9f2ac11bf8
parent3da2c0f6d231dabcf0f4402eadc14d954b88a858 (diff)
Curl_rtsp_parseheader: avoid useless malloc/free
Coverity actually pointed out flawed logic in the previous call to Curl_strntoupper() where the code used sizeof() of a pointer to pass in a size argument. That code still worked since it only needed to uppercase 4 letters. Still, the entire malloc/uppercase/free sequence was pointless since the code has already matched the string once in the condition that starts the block of code.
-rw-r--r--lib/rtsp.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/lib/rtsp.c b/lib/rtsp.c
index 5d62ac7c7..ca9788ef7 100644
--- a/lib/rtsp.c
+++ b/lib/rtsp.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -747,13 +747,7 @@ CURLcode Curl_rtsp_parseheader(struct connectdata *conn,
if(checkprefix("CSeq:", header)) {
/* Store the received CSeq. Match is verified in rtsp_done */
- int nc;
- char *temp = strdup(header);
- if(!temp)
- return CURLE_OUT_OF_MEMORY;
- Curl_strntoupper(temp, temp, sizeof(temp));
- nc = sscanf(temp, "CSEQ: %ld", &CSeq);
- free(temp);
+ int nc = sscanf(&header[4], ": %ld", &CSeq);
if(nc == 1) {
data->state.proto.rtsp->CSeq_recv = CSeq; /* mark the request */
data->state.rtsp_CSeq_recv = CSeq; /* update the handle */