From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH] graph: avoid infinite loop in graph_show_commit()
Date: Sat, 22 Sep 2012 21:24:40 +0700 [thread overview]
Message-ID: <1348323880-3751-1-git-send-email-pclouds@gmail.com> (raw)
The loop can be triggered with "git diff-tree --graph commit" where
the commit is a non-merge. It goes like this
- graph_show_commit
- graph_next_line
- graph_output_padding_line
The last function quits because graph->commit is NULL, but
graph_next_line() does not return "shown", so the loop in
graph_show_commit keeps going.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
Corner case. Nobody sane would do that. But still worth plugging.
graph.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/graph.c b/graph.c
index e864fe2..1735b26 100644
--- a/graph.c
+++ b/graph.c
@@ -1224,7 +1224,7 @@ void graph_show_commit(struct git_graph *graph)
struct strbuf msgbuf = STRBUF_INIT;
int shown_commit_line = 0;
- if (!graph)
+ if (!graph || !graph->commit)
return;
while (!shown_commit_line) {
--
1.7.12.1.389.gc2218b5
next reply other threads:[~2012-09-22 14:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-22 14:24 Nguyễn Thái Ngọc Duy [this message]
2012-09-23 11:55 ` [PATCH] graph: avoid infinite loop in graph_show_commit() Michal Kiedrowicz
2012-09-23 12:14 ` Nguyen Thai Ngoc Duy
2012-09-24 23:36 ` Junio C Hamano
2012-09-25 18:11 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1348323880-3751-1-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.