All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bagas Sanjaya <bagasdotme@gmail.com>
To: "Michael Strawbridge" <michael.strawbridge@amd.com>,
	"Junio C Hamano" <gitster@pobox.com>,
	"Luben Tuikov" <luben.tuikov@amd.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Taylor Blau" <me@ttaylorr.com>, "Jeff King" <peff@peff.net>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: [REGRESSION] uninitialized value $address in git send-email when given multiple recipients separated by commas
Date: Fri, 22 Sep 2023 16:27:55 +0700	[thread overview]
Message-ID: <ZQ1eGzqfyoeeTBUq@debian.me> (raw)

[-- Attachment #1: Type: text/plain, Size: 4711 bytes --]

Hi,

This regression is similar to one I reported earlier [1], with the same
error message but with slightly different reproducer (and as continuation
to the former report).

I use git-send-email(1) to submit patches (occasional doc fixes) to LKML.
Rather than having to type multiple --to/--cc addresses, I use the undocumented
behavior of listing multiple addresses separated by comma in a single --to/--cc
option. i.e.:

```
$ git send-email \
  --to="foo <foo@acme.com>,bar <bar@acme.com>" \
  --cc="main list <main-list@acme.com>, sub list <sub-list@acme.com>" \
  /path/to/series/*.patch
```

[This is the same behavior as Thunderbird.]

In my linux kernel tree (linux.git) used for development, I add
sendemail-validate hook that adds DKIM-like attestation with patatt:

```
#!/bin/sh
# installed by patatt install-hook
patatt sign --hook "${1}"
```

Starting from Git v2.41.0, when I try to use git-send-email(1), I got
perl-related error:

```
Use of uninitialized value $address in sprintf at /home/bagas/.app/git/dist/v2.42.0/libexec/git-core/git-send-email line 1172.
error: unable to extract a valid address from:
```

It looks like git-send-email(1) trips on cover letter since there is no
recipient addresses there, and also on patches without Signed-off-by: trailer.

Bisecting between v2.40.0 and v2.41.0, the culprit is commit a8022c5f7b67
(send-email: expose header information to git-send-email's sendemail-validate
hook, 2023-04-19). The perl error should have been reduced by [2], but this
address splitting (parsing) is still not addressed.

The full bisection log is:

```
git bisect start '--term-good=ok' '--term-bad=oops'
# status: waiting for both good and bad commits
# ok: [73876f4861cd3d187a4682290ab75c9dccadbc56] Git 2.40
git bisect ok 73876f4861cd3d187a4682290ab75c9dccadbc56
# status: waiting for bad commit, 1 good commit known
# oops: [fe86abd7511a9a6862d5706c6fa1d9b57a63ba09] Git 2.41
git bisect oops fe86abd7511a9a6862d5706c6fa1d9b57a63ba09
# ok: [b64894c2063e5875bfd95b537eafcb3e1abf46ff] Merge branch 'ow/ref-filter-omit-empty'
git bisect ok b64894c2063e5875bfd95b537eafcb3e1abf46ff
# ok: [ccd12a3d6cc62f51b746654ae56e26d92f89ba92] Merge branch 'en/header-split-cache-h-part-2'
git bisect ok ccd12a3d6cc62f51b746654ae56e26d92f89ba92
# oops: [1e1dcb2a423cad350e8f20fdcc957064e5cff528] Merge branch 'jc/dirstat-plug-leaks'
git bisect oops 1e1dcb2a423cad350e8f20fdcc957064e5cff528
# oops: [40a5d2b79b57378cc36d43d3b30e704100dc1492] Merge branch 'fc/doc-man-lift-title-length-limit'
git bisect oops 40a5d2b79b57378cc36d43d3b30e704100dc1492
# ok: [07ac32fff94b245aec3e2b80efad0b5dada629cb] Merge branch 'ma/gittutorial-fixes'
git bisect ok 07ac32fff94b245aec3e2b80efad0b5dada629cb
# oops: [7f3cc51b284d696fdb8dfbd8c9f9d0c014019d93] Merge branch 'ar/test-cleanup-unused-file-creation-part2'
git bisect oops 7f3cc51b284d696fdb8dfbd8c9f9d0c014019d93
# oops: [b6e9521956b752be4c666efedd7b91bdd05f9756] Merge branch 'ms/send-email-feed-header-to-validate-hook'
git bisect oops b6e9521956b752be4c666efedd7b91bdd05f9756
# ok: [e2abfa7212525daa24a52d9f53c45b736abb5dfe] Merge branch 'hx/negotiator-non-recursive'
git bisect ok e2abfa7212525daa24a52d9f53c45b736abb5dfe
# oops: [a8022c5f7b678189135b6caa3fadb3d8ec0c0d48] send-email: expose header information to git-send-email's sendemail-validate hook
git bisect oops a8022c5f7b678189135b6caa3fadb3d8ec0c0d48
# ok: [56adddaa06d376f3977ee91e8a769cd85439d21c] send-email: refactor header generation functions
git bisect ok 56adddaa06d376f3977ee91e8a769cd85439d21c
# first oops commit: [a8022c5f7b678189135b6caa3fadb3d8ec0c0d48] send-email: expose header information to git-send-email's sendemail-validate hook
```

To reproduce this regression:

1. Clone git.git repo, then branch off:

   ```
   $ git clone https://github.com/git/git.git && cd git
   $ git checkout -b test
   ```

2. Make two dummy signed-off commits:

   ```
   $ echo test > test && git add test && git commit -s -m "test"
   $ echo "test test" >> test && git commit -a -s -m "test test"
   ```

3. Generate patch series:

   ```
   $ mkdir /tmp/test
   $ git format-patch -o /tmp/test --cover-letter main
   ```

4. Send the series to dummy address:

   ```
   $ git send-email --to="foo <foo@acme.com>,bar <bar@acme.com>" /tmp/test/*.patch
   ```

My system runs Debian testing (trixie/sid) with perl 5.36.0.

Thanks.

[1]: https://lore.kernel.org/git/ZQhI5fMhDE82awpE@debian.me/
[2]: https://lore.kernel.org/git/545729b619308c6f3397b9aa1747f26ddc58f461.1695054945.git.me@ttaylorr.com/

-- 
An old man doll... just what I always wanted! - Clara

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

             reply	other threads:[~2023-09-22  9:28 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-22  9:27 Bagas Sanjaya [this message]
2023-09-24  3:36 ` [REGRESSION] uninitialized value $address in git send-email when given multiple recipients separated by commas Jeff King
2023-09-25  7:45   ` Bagas Sanjaya
2023-09-25  8:00     ` Jeff King
2023-09-25 14:48       ` Todd Zullinger
2023-09-25 16:17         ` Jeff King
2023-10-11 13:41           ` Bagas Sanjaya
2023-10-11 19:27             ` Michael Strawbridge
2023-10-11 20:22               ` [PATCH] send-email: move process_address_list earlier to avoid, uninitialized address error Michael Strawbridge
2023-10-11 20:25                 ` Michael Strawbridge
2023-10-11 21:27                 ` Junio C Hamano
2023-10-11 22:18                   ` Jeff King
2023-10-11 22:37                     ` Junio C Hamano
2023-10-11 22:47                       ` Jeff King
2023-10-13 20:25                         ` Michael Strawbridge
2023-10-20  6:45                           ` Jeff King
2023-10-20  7:14                             ` Jeff King
2023-10-20 10:03                               ` [PATCH 0/3] some send-email --compose fixes Jeff King
2023-10-20 10:09                                 ` [PATCH 1/3] doc/send-email: mention handling of "reply-to" with --compose Jeff King
2023-10-20 10:13                                 ` [PATCH 2/3] Revert "send-email: extract email-parsing code into a subroutine" Jeff King
2023-10-20 10:45                                   ` Oswald Buddenhagen
2023-10-23 18:40                                     ` Jeff King
2023-10-23 19:50                                       ` Oswald Buddenhagen
2023-10-25  6:11                                         ` Jeff King
2023-10-25  9:23                                           ` Oswald Buddenhagen
2023-10-27 22:31                                             ` Junio C Hamano
2023-10-30  9:13                                             ` Jeff King
2023-10-20 21:45                                   ` Junio C Hamano
2023-10-23 18:47                                     ` Jeff King
2023-10-20 10:15                                 ` [PATCH 3/3] send-email: handle to/cc/bcc from --compose message Jeff King
2023-10-20 17:30                                   ` Eric Sunshine
2023-10-20 21:42                                 ` [PATCH 0/3] some send-email --compose fixes Junio C Hamano
2023-10-23 18:51                                   ` Jeff King
2023-10-24 20:12                                     ` Michael Strawbridge
2023-10-24 20:19                                       ` [PATCH] send-email: move validation code below process_address_list Michael Strawbridge
2023-10-24 21:55                                         ` Junio C Hamano
2023-10-24 22:03                                           ` Junio C Hamano
2023-10-25 18:48                                             ` Michael Strawbridge
2023-10-25 18:51                                             ` [PATCH v2] " Michael Strawbridge
2023-10-26 12:44                                               ` Junio C Hamano
2023-10-26 13:11                                                 ` Michael Strawbridge
2023-10-25  6:50                                         ` [PATCH] " Jeff King
2023-10-25 18:47                                           ` Michael Strawbridge
2023-10-25  7:43                                         ` Uwe Kleine-König
2023-10-27 13:04                                           ` Junio C Hamano
2023-10-20  2:50                 ` [PATCH] send-email: move process_address_list earlier to avoid, uninitialized address error Bagas Sanjaya
2023-09-26 11:33       ` [REGRESSION] uninitialized value $address in git send-email when given multiple recipients separated by commas Bagas Sanjaya

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZQ1eGzqfyoeeTBUq@debian.me \
    --to=bagasdotme@gmail.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=luben.tuikov@amd.com \
    --cc=me@ttaylorr.com \
    --cc=michael.strawbridge@amd.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.