rtsp: avoid sscanf for parsing

Closes #10605
This commit is contained in:
Daniel Stenberg 2023-02-24 17:31:43 +01:00
parent 3b8f5bb15b
commit 3b15ee1e34
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -755,12 +755,14 @@ CURLcode rtp_client_write(struct Curl_easy *data, char *ptr, size_t len)
CURLcode Curl_rtsp_parseheader(struct Curl_easy *data, char *header) CURLcode Curl_rtsp_parseheader(struct Curl_easy *data, char *header)
{ {
long CSeq = 0;
if(checkprefix("CSeq:", header)) { if(checkprefix("CSeq:", header)) {
/* Store the received CSeq. Match is verified in rtsp_done */ long CSeq = 0;
int nc = sscanf(&header[4], ": %ld", &CSeq); char *endp;
if(nc == 1) { char *p = &header[5];
while(ISBLANK(*p))
p++;
CSeq = strtol(p, &endp, 10);
if(p != endp) {
struct RTSP *rtsp = data->req.p.rtsp; struct RTSP *rtsp = data->req.p.rtsp;
rtsp->CSeq_recv = CSeq; /* mark the request */ rtsp->CSeq_recv = CSeq; /* mark the request */
data->state.rtsp_CSeq_recv = CSeq; /* update the handle */ data->state.rtsp_CSeq_recv = CSeq; /* update the handle */