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 expression Background ========== 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