From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Jeff King <peff@peff.net>, Todd Zullinger <tmz@pobox.com>
Cc: "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>,
"Git Mailing List" <git@vger.kernel.org>
Subject: Re: [REGRESSION] uninitialized value $address in git send-email when given multiple recipients separated by commas
Date: Wed, 11 Oct 2023 20:41:14 +0700 [thread overview]
Message-ID: <ZSal-mQIZAUBaq6g@debian.me> (raw)
In-Reply-To: <20230925161748.GA2149383@coredump.intra.peff.net>
[-- Attachment #1: Type: text/plain, Size: 3282 bytes --]
On Mon, Sep 25, 2023 at 12:17:48PM -0400, Jeff King wrote:
> On Mon, Sep 25, 2023 at 10:48:29AM -0400, Todd Zullinger wrote:
>
> > From the peanut gallery... could the presence or lack of the
> > Email::Valid perl module be a factor?
>
> Ah, thanks! The thought of differing modules even occurred to me, since
> I know we have a few optimistic dependencies, but when I looked I didn't
> manage to find that one (somehow I thought Mail::Address was the
> interesting one here; I think I might be getting senile).
>
> With Email::Valid installed, I can reproduce with just (in git.git, but
> I think it would work in any repo):
>
> $ echo "exit 0" >.git/hooks/sendemail-validate
> $ chmod +x .git/hooks/sendemail-validate
> $ git send-email --dry-run -1 --to=foo@example.com,bar@example.com
> error: unable to extract a valid address from: foo@example.com,bar@example.com
>
> Disabling the hook with "chmod -x" makes the problem go away (and this
> is with current "master", hence the more readable error message).
>
> I think the issue is that a8022c5f7b ends up in extract_valid_address()
> via this call stack:
>
> $ = main::extract_valid_address('foo@example.com,bar@example.com') called from file '/home/peff/compile/git/git-send-email' line 1161
> $ = main::extract_valid_address_or_die('foo@example.com,bar@example.com') called from file '/home/peff/compile/git/git-send-email' line 2087
> @ = main::unique_email_list('foo@example.com,bar@example.com') called from file '/home/peff/compile/git/git-send-email' line 1507
> @ = main::gen_header() called from file '/home/peff/compile/git/git-send-email' line 2113
> . = main::validate_patch('/tmp/WfoPQSKCUa/0001-The-twelfth-batch.patch', 'auto') called from file '/home/peff/compile/git/git-send-email' line 815
>
> whereas prior to that commit, we hit it later:
>
> $ = main::extract_valid_address('foo@example.com') called from file '/home/peff/compile/git/git-send-email' line 1166
> @ = main::validate_address('foo@example.com') called from file '/home/peff/compile/git/git-send-email' line 1189
> @ = main::validate_address_list('foo@example.com', 'bar@example.com') called from file '/home/peff/compile/git/git-send-email' line 1348
> @ = main::process_address_list('foo@example.com,bar@example.com') called from file '/home/peff/compile/git/git-send-email' line 1091
>
> So the issue is the call to gen_header() added in validate_patch(). We
> won't yet have processed the address lists by that point. We can move
> those calls up, but it requires moving a bit of extra code, too (like
> the parts prompting for the "to" list if it isn't filled in).
>
> Possibly the validation checks need to be moved down, if they want to
> see a more complete view of the emails. But now we're doing more work
> (like asking the user to write the cover letter!) before we do
> validation, which is probably bad.
>
> So I dunno. Maybe gen_header() should be lazily doing this
> process_address_list() stuff? I'm not very familiar with the send-email
> code, so I'm not sure what secondary effects that could have.
>
Michael, did you look into this since you authored the culprit?
--
An old man doll... just what I always wanted! - Clara
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2023-10-11 13:41 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-22 9:27 [REGRESSION] uninitialized value $address in git send-email when given multiple recipients separated by commas Bagas Sanjaya
2023-09-24 3:36 ` 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 [this message]
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZSal-mQIZAUBaq6g@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 \
--cc=tmz@pobox.com \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).