]> git.ipfire.org Git - thirdparty/git.git/commitdiff
mailmap: fix check-mailmap with full mailmap line
authorJacob Keller <jacob.keller@gmail.com>
Fri, 21 Feb 2025 23:47:58 +0000 (15:47 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sat, 22 Feb 2025 02:27:16 +0000 (18:27 -0800)
I recently had reported to me a crash from a coworker using the recently
added sendemail mailmap support:

  3724814 Segmentation fault      (core dumped) git check-mailmap "bugs@company.xx"

This appears to happen because of the NULL pointer name passed into
map_user(). Fix this by passing "" instead of NULL so that we have a
valid pointer.

Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/check-mailmap.c
t/t4203-mailmap.sh

index df00b5ee13adb87881b8c1e92cac256e6ad319d1..be2cebe12152e38d3bb8cf12948823c8d710bdda 100644 (file)
@@ -35,7 +35,7 @@ static void check_mailmap(struct string_list *mailmap, const char *contact)
                mail = ident.mail_begin;
                maillen = ident.mail_end - ident.mail_begin;
        } else {
-               name = NULL;
+               name = "";
                namelen = 0;
                mail = contact;
                maillen = strlen(contact);
index 2265ff8872df9c2a595784c618ffba71acec44ae..0efa1ac86c9a0be2a45b9c6680fad345a1c52388 100755 (executable)
@@ -114,6 +114,18 @@ test_expect_success 'check-mailmap --stdin simple address: no mapping' '
        test_cmp expect actual
 '
 
+test_expect_success 'check-mailmap name and address: mapping' '
+       test_when_finished "rm .mailmap" &&
+       cat >.mailmap <<-EOF &&
+       Bug Reports <bugs-new@company.xx> Bugs <bugs@company.xx>
+       EOF
+       cat >expect <<-EOF &&
+       <bugs@company.xx>
+       EOF
+       git check-mailmap "bugs@company.xx" >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'No mailmap' '
        cat >expect <<-EOF &&
        $GIT_AUTHOR_NAME (1):