git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/9] http-fetch: Fix object list corruption in fill_active_slots().

From
MWMark Wooding <mdw@distorted.org.uk>
Date
Feb 1, 2006, 11:44 UTC
Message-ID
<20060201114428.5042.53434.stgit@metalzone.distorted.org.uk>
In-Reply-To
<20060201112822.5042.41256.stgit@metalzone.distorted.org.uk>
From: Mark Wooding <mdw@distorted.org.uk>

In fill_active_slots() -- if we find an object which has already arrived, say as part of a pack, /don't/ remove it from the list. It's already been prefetched and someone will ask for it later. Just label it as done and carry blithely on. (As it was, the code would dereference a freed object to continue through the list anyway.)

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
---
 http-fetch.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/http-fetch.c b/http-fetch.c
index 4b1b62d..b1ee836 100644
--- a/http-fetch.c
+++ b/http-fetch.c
@@ -312,7 +312,7 @@ void fill_active_slots(void)
 	while (active_requests < max_requests && obj_req != NULL) {
 		if (obj_req->state == WAITING) {
 			if (has_sha1_file(obj_req->sha1))
-				release_object_request(obj_req);
+				obj_req->state = COMPLETE;
 			else
 				start_object_request(obj_req);
 			curl_multi_perform(curlm, &num_transfers);
Previous: Mark WoodingNext: Mark Wooding
Message 3 of 19 in “http-fetch fixes”
  1. 0/9 http-fetch fixesMark Wooding, Feb 1, 2006
  2. 1/9 http-fetch: Mark slots as `watched' to stop them being reused.Mark Wooding, Feb 1, 2006
  3. 2/9 http-fetch: Fix object list corruption in fill_active_slots().Mark Wooding, Feb 1, 2006
  4. 3/9 http-fetch: Abort requests for objects which arrived in packsMark Wooding, Feb 1, 2006
  5. Nick HengeveldFeb 1, 2006
  6. Mark WoodingFeb 1, 2006
  7. Nick HengeveldFeb 6, 2006
  8. 4/9 http-fetch: Actually watch the file descriptors of interest.Mark Wooding, Feb 1, 2006
  9. Nick HengeveldFeb 1, 2006
  10. 5/9 http-fetch: Fix message reporting rename of object file.Mark Wooding, Feb 1, 2006
  11. 6/9 http: Turn on verbose Curl messages if GIT_CURL_VERBOSE set in environmentMark Wooding, Feb 1, 2006
  12. 7/9 http-fetch: Tidy control flow in process_alternate_responseMark Wooding, Feb 1, 2006
  13. 8/9 http: Paranoid sanity checking for active slots.Mark Wooding, Feb 1, 2006
  14. 9/9 http-fetch: Paranoid sanity checking for the object queue.Mark Wooding, Feb 1, 2006
  15. Uwe ZeisbergerFeb 1, 2006
  16. Mark WoodingFeb 1, 2006
  17. Junio C HamanoFeb 2, 2006
  18. Mark WoodingFeb 3, 2006
  19. Junio C HamanoFeb 3, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.