Skip to content
Snippets Groups Projects
Commit b11b4994 authored by Sean Bright's avatar Sean Bright Committed by Joshua Colp
Browse files

func_curl.c: Prevent crash when using CURLOPT(httpheader)

Because we use shared thread-local cURL instances, we need to ensure
that the state of the cURL instance is correct before each invocation.

In the case of custom headers, we were not resetting cURL's internal
HTTP header pointer which could result in a crash if subsequent
requests do not configure custom headers.

ASTERISK-29085 #close

Change-Id: I8b4ab34038156dfba613030a45f10e932d2e992d
parent 0aaf9aa6
No related branches found
No related tags found
3 merge requests!138Merge branch asterisk-20.3.0 into devel properly,!123Merge asterisk '20.3.0' into devel,!118Draft: manager: AOC-S support for AOCMessage
......@@ -721,9 +721,10 @@ static int acf_curl_helper(struct ast_channel *chan, struct curl_args *args)
curl_easy_setopt(*curl, CURLOPT_POSTFIELDS, args->postdata);
}
if (headers) {
curl_easy_setopt(*curl, CURLOPT_HTTPHEADER, headers);
}
/* Always assign the headers - even when NULL - in case we had
* custom headers the last time we used this shared cURL
* instance */
curl_easy_setopt(*curl, CURLOPT_HTTPHEADER, headers);
/* Temporarily assign a buffer for curl to write errors to. */
curl_errbuf[0] = curl_errbuf[CURL_ERROR_SIZE] = '\0';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment