Fixed an out of memory handling issue with HTTP pipelines.

This commit is contained in:
Dan Fandrich
2007-05-02 19:13:56 +00:00
parent acc4868b78
commit 9f72db13c4
3 changed files with 36 additions and 30 deletions

View File

@@ -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;