diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 13:27:15 +0200 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 13:27:15 +0200 | 
| commit | 588fb8efc69778b85062e8fc2f482a8de43bad75 (patch) | |
| tree | d611ec33de53d253d1e7db9768e1310b05fb3004 | |
| parent | Add and use cgit_find_stats_periodname() in print_repo() (diff) | |
| download | cgit-588fb8efc69778b85062e8fc2f482a8de43bad75.tar.gz cgit-588fb8efc69778b85062e8fc2f482a8de43bad75.tar.bz2 cgit-588fb8efc69778b85062e8fc2f482a8de43bad75.zip | |
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 (limited to '')
| -rw-r--r-- | cgit.c | 16 | 
1 files changed, 14 insertions, 2 deletions
| @@ -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) | 
