summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2009-08-24 11:27:15 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-08-24 11:27:15 (UTC)
commit588fb8efc69778b85062e8fc2f482a8de43bad75 (patch) (unidiff)
treed611ec33de53d253d1e7db9768e1310b05fb3004
parentb47b7bd1d0fb872763214e674b53a562c7513fc0 (diff)
downloadcgit-588fb8efc69778b85062e8fc2f482a8de43bad75.zip
cgit-588fb8efc69778b85062e8fc2f482a8de43bad75.tar.gz
cgit-588fb8efc69778b85062e8fc2f482a8de43bad75.tar.bz2
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 <hjemli@gmail.com>
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--cgit.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/cgit.c b/cgit.c
index 93a7a69..8381630 100644
--- a/cgit.c
+++ b/cgit.c
@@ -458,4 +458,13 @@ char *build_snapshot_setting(int bitmap)
458} 458}
459 459
460char *get_first_line(char *txt)
461{
462 char *t = xstrdup(txt);
463 char *p = strchr(t, '\n');
464 if (p)
465 *p = '\0';
466 return t;
467}
468
460void print_repo(FILE *f, struct cgit_repo *repo) 469void print_repo(FILE *f, struct cgit_repo *repo)
461{ 470{
@@ -465,6 +474,9 @@ void print_repo(FILE *f, struct cgit_repo *repo)
465 if (repo->owner) 474 if (repo->owner)
466 fprintf(f, "repo.owner=%s\n", repo->owner); 475 fprintf(f, "repo.owner=%s\n", repo->owner);
467 if (repo->desc) 476 if (repo->desc) {
468 fprintf(f, "repo.desc=%s\n", repo->desc); 477 char *tmp = get_first_line(repo->desc);
478 fprintf(f, "repo.desc=%s\n", tmp);
479 free(tmp);
480 }
469 if (repo->readme) 481 if (repo->readme)
470 fprintf(f, "repo.readme=%s\n", repo->readme); 482 fprintf(f, "repo.readme=%s\n", repo->readme);