Signed-off-by: Đoàn Trần Công Danh <congdanhqx@xxxxxxxxx> --- mailinfo.c | 5 +++++ t/t4254-am-corrupt.sh | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mailinfo.c b/mailinfo.c index 0e9911df6d..c31991e621 100644 --- a/mailinfo.c +++ b/mailinfo.c @@ -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); diff --git a/t/t4254-am-corrupt.sh b/t/t4254-am-corrupt.sh index 98cda32d0a..d9d1ac6c7d 100755 --- a/t/t4254-am-corrupt.sh +++ b/t/t4254-am-corrupt.sh @@ -69,9 +69,11 @@ 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" && write_nul_patch subject >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 ' -- 2.26.1.301.g55bc3eb7cb