Fixed an out of memory handling issue with HTTP pipelines.
This commit is contained in:
11
lib/url.c
11
lib/url.c
@@ -1925,8 +1925,8 @@ static bool IsPipeliningEnabled(struct SessionHandle *handle)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Curl_addHandleToPipeline(struct SessionHandle *data,
|
||||
struct curl_llist *pipe)
|
||||
CURLcode Curl_addHandleToPipeline(struct SessionHandle *data,
|
||||
struct curl_llist *pipe)
|
||||
{
|
||||
#ifdef CURLDEBUG
|
||||
if(!IsPipeliningPossible(data)) {
|
||||
@@ -1935,7 +1935,9 @@ void Curl_addHandleToPipeline(struct SessionHandle *data,
|
||||
infof(data, "PIPE when no PIPE supposed!\n");
|
||||
}
|
||||
#endif
|
||||
Curl_llist_insert_next(pipe, pipe->tail, data);
|
||||
if (!Curl_llist_insert_next(pipe, pipe->tail, data))
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -1995,6 +1997,9 @@ static void signalPipeClose(struct curl_llist *pipe)
|
||||
{
|
||||
struct curl_llist_element *curr;
|
||||
|
||||
if (!pipe)
|
||||
return;
|
||||
|
||||
curr = pipe->head;
|
||||
while (curr) {
|
||||
struct curl_llist_element *next = curr->next;
|
||||
|
Reference in New Issue
Block a user