Browse Source

mailinfo: disallow NUL character in mail's header

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Đoàn Trần Công Danh 5 years ago committed by Junio C Hamano
parent
commit
3919997447
  1. 5
      mailinfo.c
  2. 7
      t/t4254-am-corrupt.sh

5
mailinfo.c

@ -1138,6 +1138,11 @@ static void handle_info(struct mailinfo *mi) @@ -1138,6 +1138,11 @@ static void handle_info(struct mailinfo *mi)
else
continue;

if (memchr(hdr->buf, '\0', hdr->len)) {
error("a NUL byte in '%s' is not allowed.", header[i]);
mi->input_error = -1;
}

if (!strcmp(header[i], "Subject")) {
if (!mi->keep_subject) {
cleanup_subject(mi, hdr);

7
t/t4254-am-corrupt.sh

@ -70,10 +70,13 @@ test_expect_success "NUL in commit message's body" ' @@ -70,10 +70,13 @@ test_expect_success "NUL in commit message's body" '
grep "a NUL byte in commit log message not allowed" err
'

test_expect_failure "NUL in commit message's header" "
test_expect_success "NUL in commit message's header" "
test_when_finished 'git am --abort' &&
make_mbox_with_nul subject >subject.patch &&
test_must_fail git am subject.patch
test_must_fail git mailinfo msg patch <subject.patch 2>err &&
grep \"a NUL byte in 'Subject' is not allowed\" err &&
test_must_fail git am subject.patch 2>err &&
grep \"a NUL byte in 'Subject' is not allowed\" err
"

test_done

Loading…
Cancel
Save