From: Nick Hengeveld Date: Sat, 12 Nov 2005 17:38:28 GMT Subject: Re: [PATCH] Fix bunch of fd leaks in http-fetch Message-ID: <20051112173828.GG4051@reactrix.com> In-Reply-To: <7vk6feiflx.fsf@assigned-by-dhcp.cox.net> On Fri, Nov 11, 2005 at 09:45:30PM -0800, Junio C Hamano wrote: > It strikes me somewhat odd that these close() are not tied to > the lifetime rule of the transfer_request structure. When the > program falls back from an individual object to alternates, the > same request structure is reused, but in that case ->local stays > the same. Otherwise, the original request structure is released > so I wonder if would make things cleaner to close ->local inside > request_release()... That is the intent of the fd close in finish_request() - but that isn't called if the server returns a 404 and there are no alternates left to try. The following patch should fix it. Added a call to finish_request to clean up resources if the server returned a 404 and there are no alternates left to try. Signed-off-by: Nick Hengeveld --- http-fetch.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) applies-to: 8bae950cd42c1d615fafdf63f4c96f6b665f1e0e fe26837d08627fbb2f5f57879ebb573474680c4a diff --git a/http-fetch.c b/http-fetch.c index cbb9690..78becce 100644 --- a/http-fetch.c +++ b/http-fetch.c @@ -632,6 +632,8 @@ static void process_curl_messages(void) request->repo = request->repo->next; start_request(request); + } else { + finish_request(request); } } else { finish_request(request); --- 0.99.9.GIT