# [PATCH] git log: avoid segfault with --all-match

3 messages from 2009-03-18 to 2009-03-18. Participants: Michele Ballabio, Junio C Hamano.
Thread: https://gitlist.dev/t/18375

## Michele Ballabio, 2009-03-18 18:06

Subject: [PATCH] git log: avoid segfault with --all-match
Message-ID: <1237399576-27323-1-git-send-email-barra_cuda@katamail.com>
URL: https://gitlist.dev/e/1237399576-27323-1-git-send-email-barra_cuda%40katamail.com

```
Avoid a segfault when the command

	git log --all-match

was issued.

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
---

Not sure if this is the right fix, nor if it would be better a
warning or an error.

 grep.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/grep.c b/grep.c
index 062b2b6..cb4666d 100644
--- a/grep.c
+++ b/grep.c
@@ -190,7 +190,8 @@ void compile_grep_patterns(struct grep_opt *opt)
 	 * A classic recursive descent parser would do.
 	 */
 	p = opt->pattern_list;
-	opt->pattern_expression = compile_pattern_expr(&p);
+	if (p)
+		opt->pattern_expression = compile_pattern_expr(&p);
 	if (p)
 		die("incomplete pattern expression: %s", p->pattern);
 }
-- 
1.6.2.22.gc2ac

```

## Junio C Hamano, 2009-03-18 18:33

Subject: Re: [PATCH] git log: avoid segfault with --all-match
Message-ID: <7vbpryfzpb.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vbpryfzpb.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <1237399576-27323-1-git-send-email-barra_cuda@katamail.com>

```
Michele Ballabio <barra_cuda@katamail.com> writes:

> Avoid a segfault when the command
>
> 	git log --all-match
>
> was issued.
>
> Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
> ---
>
> Not sure if this is the right fix, nor if it would be better a
> warning or an error.

I think ignoring it makes sense; you could alias "git log --all-match" to
something like "git lg", and when no grepping option appears it will still
work.

I'd add s/was issued./was issued, by ignoring the option/; or something
like that, though.

```

## Michele Ballabio, 2009-03-18 20:53

Subject: [PATCH v2] git log: avoid segfault with --all-match
Message-ID: <1237409607-4169-1-git-send-email-barra_cuda@katamail.com>
URL: https://gitlist.dev/e/1237409607-4169-1-git-send-email-barra_cuda%40katamail.com
In-Reply-To: <7vbpryfzpb.fsf@gitster.siamese.dyndns.org>

```
Avoid a segfault when the command

	git log --all-match

was issued, by ignoring the option.

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
---
 grep.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/grep.c b/grep.c
index 062b2b6..cb4666d 100644
--- a/grep.c
+++ b/grep.c
@@ -190,7 +190,8 @@ void compile_grep_patterns(struct grep_opt *opt)
 	 * A classic recursive descent parser would do.
 	 */
 	p = opt->pattern_list;
-	opt->pattern_expression = compile_pattern_expr(&p);
+	if (p)
+		opt->pattern_expression = compile_pattern_expr(&p);
 	if (p)
 		die("incomplete pattern expression: %s", p->pattern);
 }
-- 
1.6.2.22.gc2ac

```
