From 220776de6b06c3350fac5fe78d8a2f68e894fe90 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 15 Jun 2012 22:51:45 +0200 Subject: 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. --- lib/rtsp.c | 10 ++-------- 1 file 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, , et al. + * Copyright (C) 1998 - 2012, Daniel Stenberg, , 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 */ -- cgit v1.2.3