From bec97a0999f92a02ddae393a0aca3e78a30fd485 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Wed, 12 Sep 2001 08:00:30 +0000
Subject: [PATCH] ConnectionKillOne() _can_ return -1 as an indication of error
 This is T. Bharath's fix

---
 lib/url.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/lib/url.c b/lib/url.c
index 4a7c57ff95..cfcac7322f 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -1097,10 +1097,14 @@ ConnectionStore(struct SessionHandle *data,
     infof(data, "Connection (#%d) was killed to make room\n", i);
   }
 
-  data->state.connects[i] = conn; /* fill in this */
-  conn->connectindex = i; /* make the child know where the pointer to this
-                             particular data is stored */
-
+  if(-1 != i) {
+    /* only do this if a true index was returned, if -1 was returned there
+       is no room in the cache for an unknown reason and we cannot store
+       this there. */
+    data->state.connects[i] = conn; /* fill in this */
+    conn->connectindex = i; /* make the child know where the pointer to this
+                               particular data is stored */
+  }
   return i;
 }
 
-- 
GitLab