From 588fb8efc69778b85062e8fc2f482a8de43bad75 Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Mon, 24 Aug 2009 13:27:15 +0200 Subject: cgit.c: only print first line of repo.desc in print_repo() Since repo.desc might have been populated by reading the 'description' file in GIT_DIR, it may contain newlines. And by printing the literal value, we may then generate an invalid cgitrc include-file. Signed-off-by: Lars Hjemli --- cgit.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/cgit.c b/cgit.c index 93a7a69..8381630 100644 --- a/cgit.c +++ b/cgit.c @@ -457,6 +457,15 @@ char *build_snapshot_setting(int bitmap) return result; } +char *get_first_line(char *txt) +{ + char *t = xstrdup(txt); + char *p = strchr(t, '\n'); + if (p) + *p = '\0'; + return t; +} + void print_repo(FILE *f, struct cgit_repo *repo) { fprintf(f, "repo.url=%s\n", repo->url); @@ -464,8 +473,11 @@ void print_repo(FILE *f, struct cgit_repo *repo) fprintf(f, "repo.path=%s\n", repo->path); if (repo->owner) fprintf(f, "repo.owner=%s\n", repo->owner); - if (repo->desc) - fprintf(f, "repo.desc=%s\n", repo->desc); + if (repo->desc) { + char *tmp = get_first_line(repo->desc); + fprintf(f, "repo.desc=%s\n", tmp); + free(tmp); + } if (repo->readme) fprintf(f, "repo.readme=%s\n", repo->readme); if (repo->defbranch) -- cgit 1.4.1-21-gabe81