diff options
author | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 20:27:15 (JST) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 20:27:15 (JST) |
commit | 588fb8efc69778b85062e8fc2f482a8de43bad75 (patch) | |
tree | d611ec33de53d253d1e7db9768e1310b05fb3004 | |
parent | b47b7bd1d0fb872763214e674b53a562c7513fc0 (diff) | |
download | cgit-588fb8efc69778b85062e8fc2f482a8de43bad75.zip cgit-588fb8efc69778b85062e8fc2f482a8de43bad75.tar.gz |
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>
-rw-r--r-- | cgit.c | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -457,6 +457,15 @@ char *build_snapshot_setting(int bitmap) | |||
457 | return result; | 457 | return result; |
458 | } | 458 | } |
459 | 459 | ||
460 | char *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 | |||
460 | void print_repo(FILE *f, struct cgit_repo *repo) | 469 | void print_repo(FILE *f, struct cgit_repo *repo) |
461 | { | 470 | { |
462 | fprintf(f, "repo.url=%s\n", repo->url); | 471 | fprintf(f, "repo.url=%s\n", repo->url); |
@@ -464,8 +473,11 @@ void print_repo(FILE *f, struct cgit_repo *repo) | |||
464 | fprintf(f, "repo.path=%s\n", repo->path); | 473 | fprintf(f, "repo.path=%s\n", repo->path); |
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); |
471 | if (repo->defbranch) | 483 | if (repo->defbranch) |