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

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 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

Next: René Scharfe
Message 1 of 6 in “segfault on invalid 'git grep' invocation”
  1. Matthew HughesJun 28, 2021
  2. grep: report missing left operand of --andRené Scharfe, Jun 28, 2021
  3. Ævar Arnfjörð BjarmasonJun 29, 2021
  4. René ScharfeJun 29, 2021
  5. Ævar Arnfjörð BjarmasonJun 28, 2021
  6. grep: report missing left operand of --andRené Scharfe, Jun 30, 2021

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.