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

Re: git clone http://git.savannah.gnu.org/cgit/xboard.git segfaults

From
Tay Ray Chuan <rctay89@gmail.com>
Date
Aug 26, 2009, 12:20 UTC
Message-ID
<20090826202053.6e6442a6.rctay89@gmail.com>
In-Reply-To
<alpine.DEB.1.00.0908171620160.4991@intel-tinevez-2-302>
Hi,
On Mon, Aug 17, 2009 at 10:22 PM, Johannes Schindelin<Johannes.Schindelin@gmx.de> wrote:
> Seems that an object request is aborted, but the slot, and therefore the
> callback, is called nevertheless.  Tay, does that ring a bell?
thanks Johannes, your diagnosis was a vital clue.

Ali, could you see if this patch fixes it for you? On my side, I had some difficulty reproducing your problem reliably (it happened sometimes but not on other times).

-- Cheers, Ray Chuan

-- >8 --
Subject: [PATCH] http.c: set slot callback members to NULL when releasing object

Set the members callback_func and callback_data of freq->slot to NULL when releasing a http_object_request. release_active_slot() is also invoked on the slot to remove the curl handle associated with the slot from the multi stack (CURLM *curlm in http.c).

These prevent the callback function and data from being used in http methods (like http.c::finish_active_slot()) after a http_object_request has been free'd.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---
 http.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/http.c b/http.c
index a2720d5..1ae19e0 100644
--- a/http.c
+++ b/http.c
 -1285,5 +1285,10 @@ void release_http_object_request(struct http_object_request *freq)
 		free(freq->url);
 		freq->url = NULL;
 	}
-	freq->slot = NULL;
+	if (freq->slot != NULL) {
+		freq->slot->callback_func = NULL;
+		freq->slot->callback_data = NULL;
+		release_active_slot(freq->slot);
+		freq->slot = NULL;
+	}
 }
--
1.6.4.193.gaceaa.dirty
Previous: Johannes SchindelinNext: Ali Polatel
Message 4 of 11 in “git clone http://git.savannah.gnu.org/cgit/xboard.git segfaults”
  1. Ali PolatelAug 17, 2009
  2. Johannes SchindelinAug 17, 2009
  3. Johannes SchindelinAug 17, 2009
  4. Tay Ray ChuanAug 26, 2009
  5. Ali PolatelAug 26, 2009
  6. Johannes SchindelinAug 27, 2009
  7. Tay Ray ChuanAug 29, 2009
  8. Junio C HamanoAug 29, 2009
  9. Junio C HamanoAug 29, 2009
  10. Tay Ray ChuanAug 29, 2009
  11. Lars HjemliAug 17, 2009

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.