summaryrefslogtreecommitdiffabout
authorFlorian Pritz <bluewind@xssn.at>2010-02-01 16:55:37 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2010-02-27 11:47:57 (UTC)
commit8d946079c5f51ce934ff5edf6333962c6061d8a5 (patch) (unidiff)
tree6d62be9c7f5e498f55a8c38f29b831fc3fc1d6b0
parentc86e206a9773f97dc6de6bbf45712bb304de3653 (diff)
downloadcgit-8d946079c5f51ce934ff5edf6333962c6061d8a5.zip
cgit-8d946079c5f51ce934ff5edf6333962c6061d8a5.tar.gz
cgit-8d946079c5f51ce934ff5edf6333962c6061d8a5.tar.bz2
ui-shared.c: fix segfault when repo is empty
PATH_INFO="/$REPONAME/commit/?id=1" QUERY_STRING="id=1" ./cgit.cgi triggers segfault when the repository is empty and therefore ctx.qry.head is unset Signed-off-by: Florian Pritz <bluewind@xssn.at> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ui-shared.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 4049a2b..8a7cc32 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -241,17 +241,17 @@ static char *repolink(char *title, char *class, char *page, char *head,
241} 241}
242 242
243static void reporevlink(char *page, char *name, char *title, char *class, 243static void reporevlink(char *page, char *name, char *title, char *class,
244 char *head, char *rev, char *path) 244 char *head, char *rev, char *path)
245{ 245{
246 char *delim; 246 char *delim;
247 247
248 delim = repolink(title, class, page, head, path); 248 delim = repolink(title, class, page, head, path);
249 if (rev && strcmp(rev, ctx.qry.head)) { 249 if (rev && ctx.qry.head != NULL && strcmp(rev, ctx.qry.head)) {
250 html(delim); 250 html(delim);
251 html("id="); 251 html("id=");
252 html_url_arg(rev); 252 html_url_arg(rev);
253 } 253 }
254 html("'>"); 254 html("'>");
255 html_txt(name); 255 html_txt(name);
256 html("</a>"); 256 html("</a>");
257} 257}
@@ -341,17 +341,17 @@ void cgit_snapshot_link(char *name, char *title, char *class, char *head,
341} 341}
342 342
343void cgit_diff_link(char *name, char *title, char *class, char *head, 343void cgit_diff_link(char *name, char *title, char *class, char *head,
344 char *new_rev, char *old_rev, char *path) 344 char *new_rev, char *old_rev, char *path)
345{ 345{
346 char *delim; 346 char *delim;
347 347
348 delim = repolink(title, class, "diff", head, path); 348 delim = repolink(title, class, "diff", head, path);
349 if (new_rev && strcmp(new_rev, ctx.qry.head)) { 349 if (new_rev && ctx.qry.head != NULL && strcmp(new_rev, ctx.qry.head)) {
350 html(delim); 350 html(delim);
351 html("id="); 351 html("id=");
352 html_url_arg(new_rev); 352 html_url_arg(new_rev);
353 delim = "&amp;"; 353 delim = "&amp;";
354 } 354 }
355 if (old_rev) { 355 if (old_rev) {
356 html(delim); 356 html(delim);
357 html("id2="); 357 html("id2=");