Git development
 help / color / mirror / Atom feed
* "git-diff -p :/anything" always segfaults
@ 2007-03-11 18:49 Jim Meyering
  2007-03-11 19:08 ` Johannes Schindelin
  2007-03-11 20:25 ` Linus Torvalds
  0 siblings, 2 replies; 7+ messages in thread
From: Jim Meyering @ 2007-03-11 18:49 UTC (permalink / raw)
  To: git

I like the idea of the new ':/<oneline prefix>' notation, and gave it
a try, but all I could get was a segfault.  It was dereferencing a NULL
commit list.  Fix below.  With it, this example now works:

$ mkdir .j; cd .j; touch f
$ (git-init; git-add f; git-commit -mc f; echo x >f; git-commit -md f)>/dev/null
$ git-diff -p :/c :/d
diff --git a/f b/f
index e69de29..587be6b 100644
--- a/f
+++ b/f
@@ -0,0 +1 @@
+x

Signed-off-by: Jim Meyering <jim@meyering.net>
---
 sha1_name.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/sha1_name.c b/sha1_name.c
index 31812d3..6b6270b 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -617,7 +617,7 @@ int get_sha1_oneline(const char *prefix, unsigned char *sha1)
 	for_each_ref(handle_one_ref, &list);
 	for (l = list; l; l = l->next)
 		commit_list_insert(l->item, &backup);
-	while ((commit = pop_most_recent_commit(&list, ONELINE_SEEN))) {
+	while (list && (commit = pop_most_recent_commit(&list, ONELINE_SEEN))) {
 		char *p;
 		parse_object(commit->object.sha1);
 		if (!commit->buffer || !(p = strstr(commit->buffer, "\n\n")))
--
1.5.0.3.316.gbd1fc

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-03-12 18:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-11 18:49 "git-diff -p :/anything" always segfaults Jim Meyering
2007-03-11 19:08 ` Johannes Schindelin
2007-03-11 20:25 ` Linus Torvalds
2007-03-11 20:58   ` Junio C Hamano
2007-03-12 16:14     ` Linus Torvalds
2007-03-12 16:22       ` Linus Torvalds
2007-03-12 18:42       ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox