diff options
| author | 2009-08-24 20:27:15 (JST) | |
|---|---|---|
| committer | 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) |
