Skip to content

Commit

Permalink
Quote LF in urls git fetch saves in FETCH_HEAD
Browse files Browse the repository at this point in the history
The fmt-merge-msg does a strong syntax checking of its input and fails
with if it is incorrect. The LF character is the only character
important for fmt-merge-msg. As the url in FETCH_HEAD plays only
informational role, a quoted representation of the url should be good
and true enough.
The url often comes from either user-editable config or command line,
so it is reasonable to expect all kinds of characters in it, including
the characters which the format of FETCH_HEAD considers special (line
separator in this case).

Noticed and reported by Hugo Mildenberger.

Signed-off-by: Alex Riesen <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
raalkml authored and gitster committed May 13, 2009
1 parent 1a28725 commit 95405ba
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions builtin-fetch.c
Original file line number Diff line number Diff line change
Expand Up @@ -353,12 +353,18 @@ static int store_updated_refs(const char *url, const char *remote_name,
kind);
note_len += sprintf(note + note_len, "'%s' of ", what);
}
note_len += sprintf(note + note_len, "%.*s", url_len, url);
fprintf(fp, "%s\t%s\t%s\n",
note[note_len] = '\0';
fprintf(fp, "%s\t%s\t%s",
sha1_to_hex(commit ? commit->object.sha1 :
rm->old_sha1),
rm->merge ? "" : "not-for-merge",
note);
for (i = 0; i < url_len; ++i)
if ('\n' == url[i])
fputs("\\n", fp);
else
fputc(url[i], fp);
fputc('\n', fp);

if (ref)
rc |= update_local_ref(ref, what, note);
Expand Down

0 comments on commit 95405ba

Please sign in to comment.