Re: [BUG] git-check-ignore: Segmentation fault
- From
Adam Spiers <git@adamspiers.org>
- Date
- Feb 19, 2013, 13:40 UTC
- Message-ID
- <CAOkDyE_96Ef5CjoxNk3mbsNi+ZAuv6XeHcO7r8RQ-Of5ELsuKw@mail.gmail.com>
- In-Reply-To
- <CAKJhZwR7AT6VfCZYwaTvWYyjtYWg+RxBSmB5NaJY0LrqMUnD6A@mail.gmail.com>
On Tue, Feb 19, 2013 at 5:24 AM, Zoltan Klinger <zoltan.klinger@gmail.com> wrote:
Show 26 quoted lines
> Hi there, > > The new git-check-ignore command seg faults when > (1) it is called with single dot path name at $GIT_DIR level _AND_ > (2) and .gitignore has at least one directory pattern. > > Git version: 1.8.2.rc0.16.g20a599e > > Reproduce the bug: > $ git --version > git version 1.8.2.rc0.16.g20a599e > $ mkdir test > $ cd test > $ git init > $ git check-ignore . # All good, no errors here > $ echo "dirpattern/" > .gitignore > $ git check-ignore . > Segmentation fault (core dumped) > > The segmentation fault is actually caused by hash_name(const char > *name, int namelen) function in name-hash.c when the 'name' argument > is an empty stringi and namelen is 0. > > The empty string comes from a call to the prefix_path(prefix, len, > path) function in setup.c. In this instance arguments 'prefix' is > NULL, 'len' is 0 and 'path' is "." .
Good catch! Thanks for the very helpful bug report. I can reproduce this, and have a fix - see follow-up mail to follow shortly.