segfault on invalid 'git grep' invocation
- From
Matthew Hughes <matthewhughes934@gmail.com>
- Date
- Jun 28, 2021, 12:17 UTC
- Message-ID
- <20210628121748.f3yrc72v4mynknl3@debianXPS.lan>
Hi all,
It's my first time writing to this mailing list, so apologies in advance for any mistakes/faux pas.
Summary =======
Segfault seen when running:
$ ./git grep --and -e 'pattern' -- not_a_path
Expected Behaviour ==================
The above invocation doesn't appear particularly valid to me, I accidentally ran it while editing a command. Not sure if this needs addressing, but perhaps the expected behaviour would be an error message about it not being valid?
Compare with, running without '--':
$ ./git grep --and -e 'pattern' not_a_path
fatal: ambiguous argument 'not_a_path': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'Running with a valid path:
$ ./git grep --and -e 'pattern' -- common-main.c
fatal: Not a valid grep expression $ ./git grep --and -e 'pattern' common-main.c
fatal: Not a valid grep expressionBackground ==========
git version: git version 2.32.0.93.g670b81a890 cpu: x86_64 built from commit: 670b81a890388c60b7032a4f5b879f2ece8c4558 sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 compiler info: gnuc: 8.3 libc info: glibc: 2.28 $SHELL (typically, interactive shell): /bin/bash
Also reproduced on git 2.20.1 (packaged version on Debian 10)
The segfault is raised at free_pattern_expr (x=0x0) at grep.c:825 (on commit 670b81a890388c60b7032a4f5b879f2ece8c4558)
Regards, Matt