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

Re: input validation in receive-pack

From
Daniel Barkalow <barkalow@iabervon.org>
Date
Jan 2, 2008, 05:01 UTC
Message-ID
<alpine.LNX.1.00.0801012353580.13593@iabervon.org>
In-Reply-To
<7vzlvp3oya.fsf@gitster.siamese.dyndns.org>
On Tue, 1 Jan 2008, Junio C Hamano wrote:
Show 17 quoted lines
> mkoegler@auto.tuwien.ac.at (Martin Koegler) writes:
> 
> > In the update code path, the check is done in refs.c:
> > | struct ref_lock *lock_any_ref_for_update(const char *ref, const unsigned char *old_sha1, int flags)
> > | {
> > |         if (check_ref_format(ref) == -1)
> > |                 return NULL;
> > |         return lock_ref_sha1_basic(ref, old_sha1, flags, NULL);
> > | }
> >
> > check_ref_format may also return -2 (less than two name levels) and -3
> > (* at the end), which are ignored. Is it really intended, that
> > receive-pack can create such refs.
> 
> Misconversion in 8558fd9ece4c8250a037a6d5482a8040d600ef47 that
> changed check_ref_format() without looking at what its callers
> are checking, I think.

When I got to it, it was already accepting -2. It clearly shouldn't accept -3 (and I don't know why I missed it; I was probably misinterpreting the original logic there.

	-Daniel
*This .sig left intentionally blank*
Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 8 in “input validation in receive-pack”
  1. Martin KoeglerJan 1, 2008
  2. Junio C HamanoJan 2, 2008
  3. Daniel BarkalowJan 2, 2008
  4. Junio C HamanoJan 2, 2008
  5. Daniel BarkalowJan 2, 2008
  6. Junio C HamanoJan 2, 2008
  7. Martin KoeglerJan 2, 2008
  8. Junio C HamanoJan 2, 2008

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.