trailer: forbid leading whitespace in trailers

Currently, interpret-trailers allows leading whitespace in trailer
lines. This leads to false positives, especially for quoted lines or
bullet lists.

Forbid leading whitespace in trailers.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jonathan Tan 2016-10-21 10:55:02 -07:00 committed by Junio C Hamano
parent 146245063e
commit c463a6b280
3 changed files with 17 additions and 2 deletions

View file

@ -55,7 +55,7 @@ The group must either be at the end of the message or be the last
non-whitespace lines before a line that starts with '---'. Such three
minus signs start the patch part of the message.
When reading trailers, there can be whitespaces before and after the
When reading trailers, there can be whitespaces after the
token, the separator and the value. There can also be whitespaces
inside the token and the value.

View file

@ -241,6 +241,21 @@ test_expect_success 'with non-trailer lines only' '
test_cmp expected actual
'
test_expect_success 'line with leading whitespace is not trailer' '
q_to_tab >patch <<-\EOF &&
Qtoken: value
EOF
q_to_tab >expected <<-\EOF &&
Qtoken: value
token: value
EOF
git interpret-trailers --trailer "token: value" patch >actual &&
test_cmp expected actual
'
test_expect_success 'with config setup' '
git config trailer.ack.key "Acked-by: " &&
cat >expected <<-\EOF &&

View file

@ -775,7 +775,7 @@ static int find_trailer_start(struct strbuf **lines, int count)
}
separator_pos = find_separator(lines[start]->buf);
if (separator_pos >= 1) {
if (separator_pos >= 1 && !isspace(lines[start]->buf[0])) {
struct list_head *pos;
trailer_lines++;