summaryrefslogtreecommitdiffabout
path: root/cgit.c
authorLars Hjemli <hjemli@gmail.com>2008-07-27 10:32:08 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-07-27 10:32:08 (UTC)
commit25c84326deff579d5de4b880f9dca2690bdc8569 (patch) (unidiff)
tree9ca41073e0e06e6dc24f7800182bf4a7b22f548c /cgit.c
parent2d6ee032d0c2f84ebcfaa12d3289e85cfab18fcd (diff)
downloadcgit-25c84326deff579d5de4b880f9dca2690bdc8569.zip
cgit-25c84326deff579d5de4b880f9dca2690bdc8569.tar.gz
cgit-25c84326deff579d5de4b880f9dca2690bdc8569.tar.bz2
Be prepared for empty repositories
Before this patch, cgit would segfault on repositories with no refs. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/cgit.c b/cgit.c
index 8795085..cefeddf 100644
--- a/cgit.c
+++ b/cgit.c
@@ -209,2 +209,3 @@ char *find_default_branch(struct cgit_repo *repo)
209 struct refmatch info; 209 struct refmatch info;
210 char *ref;
210 211
@@ -215,5 +216,8 @@ char *find_default_branch(struct cgit_repo *repo)
215 if (info.match) 216 if (info.match)
216 return info.req_ref; 217 ref = info.req_ref;
217 else 218 else
218 return info.first_ref; 219 ref = info.first_ref;
220 if (ref)
221 ref = xstrdup(ref);
222 return ref;
219} 223}
@@ -243,3 +247,3 @@ static int prepare_repo_cmd(struct cgit_context *ctx)
243 if (!ctx->qry.head) { 247 if (!ctx->qry.head) {
244 ctx->qry.head = xstrdup(find_default_branch(ctx->repo)); 248 ctx->qry.head = find_default_branch(ctx->repo);
245 ctx->repo->defbranch = ctx->qry.head; 249 ctx->repo->defbranch = ctx->qry.head;