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

Re: [PATCH] git-fast-import possible memory corruption problem

From
YTYONETANI Tomokazu <qhwt+git@les.ath.cx>
Date
Dec 14, 2008, 10:45 UTC
Message-ID
<20081214104534.GA72082@les.ath.cx>
In-Reply-To
<7vskor2tfw.fsf@gitster.siamese.dyndns.org>
On Sat, Dec 13, 2008 at 09:53:55PM -0800, Junio C Hamano wrote:
Show 27 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
> 
> >> As the `round out' takes place AFTER it found the room in the mem_pool,
> >> there's a small chance of p->next_free being set outside of the chosen
> >> area, up to (sizeof(uintmax_t) - 1) bytes.  pool_strdup() is one of the
> >> functions which can trigger the problem, when pool_alloc() finds a room
> >> at the end of a pool entry and the requested length is not multiple of
> >> size(uintmax_t).  I believe attached patch addresses this problem.
> >
> > Thanks -- do you mean your reproducible crash does not reproduce with the
> > patch anymore?
> >
> > I think your change to move the "round up" logic up in the codepath makes
> > perfect sense.  But your patch seems to conflate totally unrelated change
> > to move memzero from the caller to callee into it, and I do not see the
> > reason why it should be that way.  If the caller asked 10 bytes to calloc
> > from the pool, and the underlying pool allocator gives you a 16-byte
> > block, you only have to guarantee that the first 10 bytes are cleared, and
> > can leave the trailing padding 6 bytes at the end untouched.
> 
> That is, something like this...
> 
>  fast-import.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git c/fast-import.c w/fast-import.c
> index 3c035a5..3276d5d 100644

[snip] Yes, that was what it originally looked like, but after fixing the crash I encountered another problem, and thought that I had to clear rounded up area too. It turned out that the second problem has nothing to do with [the pool allocator, but the data fed to git-fast-import. After fixing the data, the git-fast-import with above patch finished successfully, no more crashes.

Previous: Junio C Hamano
Message 4 of 4 in “git-fast-import possible memory corruption problem”
  1. git-fast-import possible memory corruption problemYONETANI Tomokazu, Dec 14, 2008
  2. Junio C HamanoDec 14, 2008
  3. Junio C HamanoDec 14, 2008
  4. YONETANI TomokazuDec 14, 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.