[BUG] git-check-ignore: Segmentation fault
- From
Zoltan Klinger <zoltan.klinger@gmail.com>
- Date
- Feb 19, 2013, 05:24 UTC
- Message-ID
- <CAKJhZwR7AT6VfCZYwaTvWYyjtYWg+RxBSmB5NaJY0LrqMUnD6A@mail.gmail.com>
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 "." .
Cheers, Zoltan