threads / patch / 18375

patchgit log: avoid segfault with --all-match

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

## tl;dr

3 messages between Mar 18, 2009 and Mar 18, 2009. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Michele Ballabio· Mar 18, 2009, 18:06 UTC · lore
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(-)
Show changes to grep.c +2 −1
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· Mar 18, 2009, 18:33 UTC · re: Michele Ballabio · lore

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

Michele Ballabio <barra_cuda@katamail.com> writes:
Show 11 quoted lines
> 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· Mar 18, 2009, 20:53 UTC · re: Junio C Hamano · lore

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

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(-)
Show changes to grep.c +2 −1
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

← back to recent threads