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

Re: [PATCH 2/2] remote-curl.c: fix rpc_out()

From
Tay Ray Chuan <rctay89@gmail.com>
Date
Nov 23, 2009, 17:54 UTC
Message-ID
<20091124015415.c22d07c1.rctay89@gmail.com>
In-Reply-To
<alpine.DEB.1.00.0911231137170.4985@pacific.mpi-cbg.de>
Hi,
On Mon, Nov 23, 2009 at 6:39 PM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> I guess you meant "not be enough", as an int can hold a pretty large
> number until it turns negative.

I really did mean 'enough' - enough to trigger the use of chunked encoding. I think the most important fix here is forcing rpc_out to (according to curl) memcpy at most size_t max bytes (the removal of the extraneous ';' addresses this). Pushing with chunked transfer would fail with this extra semicolon.

Removing the possibility of a negative size_t was a preventive measure, and, like you mentioned, requires a larger repository, so it's harder to test for.

I probably should separate these issues into separate patches.
Show 5 quoted lines
> So I think in this case it is more harm- than helpful to have a test case.
>
> For future reference: if you need a repository with special featurs
> for testing, it is best to generate it in a test script (see the many test
> cases labeled 'setup' in our test suite for examples).

Here's what I came up with: use the git repository which fetched the test suite, and use the environment variable GIT_REMOTE_REFSPEC to specify the remote refspec which the tester fetches git from.

  if test -z "$GIT_REMOTE_REFSPEC"; then
  	say 'skipping test, the remote for git is not specified'
  else
  	test_expect_success 'push with chunked encoding' '
  		OWD=$(pwd) &&
  		cd $TEST_DIRECTORY/../.git/ &&
  		REPO=$(pwd) &&
  		cd "$OWD" &&
  		echo "$REPO"/objects > .git/objects/info/alternates &&
  		git fetch "$REPO" "$GIT_REMOTE_REFSPEC"/*:refs/remotes/git/* &&
  		git push -v -v origin "refs/remotes/git/*:refs/remotes/git/*" \
  			>out 2>&1 &&
  		grep "POST git-receive-pack (chunked)" out
  	'
  fi
Thoughts?
-- 
Cheers,
Ray Chuan
Previous: Johannes SchindelinNext: Shawn O. Pearce
Message 5 of 7 in “remote-curl.c: fix rpc_out()”
  1. 2/2 remote-curl.c: fix rpc_out()Tay Ray Chuan, Nov 23, 2009
  2. Sverre RabbelierNov 23, 2009
  3. Tay Ray ChuanNov 23, 2009
  4. Johannes SchindelinNov 23, 2009
  5. Tay Ray ChuanNov 23, 2009
  6. Shawn O. PearceNov 23, 2009
  7. Tay Ray ChuanNov 24, 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.