author | Florian Pritz <bluewind@xssn.at> | 2010-02-01 16:55:37 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2010-02-27 11:47:57 (UTC) |
commit | 8d946079c5f51ce934ff5edf6333962c6061d8a5 (patch) (unidiff) | |
tree | 6d62be9c7f5e498f55a8c38f29b831fc3fc1d6b0 | |
parent | c86e206a9773f97dc6de6bbf45712bb304de3653 (diff) | |
download | cgit-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>
-rw-r--r-- | ui-shared.c | 4 |
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 | ||
243 | static void reporevlink(char *page, char *name, char *title, char *class, | 243 | static 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 | ||
343 | void cgit_diff_link(char *name, char *title, char *class, char *head, | 343 | void 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 = "&"; | 353 | delim = "&"; |
354 | } | 354 | } |
355 | if (old_rev) { | 355 | if (old_rev) { |
356 | html(delim); | 356 | html(delim); |
357 | html("id2="); | 357 | html("id2="); |