diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2008-07-27 12:32:08 +0200 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2008-07-27 12:32:08 +0200 | 
| commit | 25c84326deff579d5de4b880f9dca2690bdc8569 (patch) | |
| tree | 9ca41073e0e06e6dc24f7800182bf4a7b22f548c | |
| parent | ui-shared: show repo owner along with description (diff) | |
| download | cgit-25c84326deff579d5de4b880f9dca2690bdc8569.tar.gz cgit-25c84326deff579d5de4b880f9dca2690bdc8569.tar.bz2 cgit-25c84326deff579d5de4b880f9dca2690bdc8569.zip | |
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 '')
| -rw-r--r-- | cgit.c | 10 | ||||
| -rw-r--r-- | ui-shared.c | 3 | 
2 files changed, 9 insertions, 4 deletions
| @@ -207,15 +207,19 @@ int find_current_ref(const char *refname, const unsigned char *sha1,  char *find_default_branch(struct cgit_repo *repo)  {  	struct refmatch info; +	char *ref;  	info.req_ref = repo->defbranch;  	info.first_ref = NULL;  	info.match = 0;  	for_each_branch_ref(find_current_ref, &info);  	if (info.match) -		return info.req_ref; +		ref = info.req_ref;  	else -		return info.first_ref; +		ref = info.first_ref; +	if (ref) +		ref = xstrdup(ref); +	return ref;  }  static int prepare_repo_cmd(struct cgit_context *ctx) @@ -241,7 +245,7 @@ static int prepare_repo_cmd(struct cgit_context *ctx)  	ctx->page.title = fmt("%s - %s", ctx->repo->name, ctx->repo->desc);  	if (!ctx->qry.head) { -		ctx->qry.head = xstrdup(find_default_branch(ctx->repo)); +		ctx->qry.head = find_default_branch(ctx->repo);  		ctx->repo->defbranch = ctx->qry.head;  	} diff --git a/ui-shared.c b/ui-shared.c index 209af6e..4280a70 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -518,7 +518,8 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page)  		html_hidden("url", url);  	} -	if (incl_head && strcmp(ctx.qry.head, ctx.repo->defbranch)) +	if (incl_head && ctx.qry.head && ctx.repo->defbranch && +	    strcmp(ctx.qry.head, ctx.repo->defbranch))  		html_hidden("h", ctx.qry.head);  	if (ctx.qry.sha1) | 
