Leah Neukirchen <[email protected]> wrote:
> 2) Weird From: lines crash the whole import
>
> From: "=?iso-8859-1?Q?Jochen_K=FCpper?= <usenet"@jochen-kuepper.de
>
> This funny line broke import_maildir:
>
> fatal: Missing > in ident string: =?iso-8859-1?Q?Jochen_K=FCpper?= usenet
> <"=?iso-8859-1?Q?Jochen_K=FCpper?= <usenet"@jochen-kuepper.de> 1101853296
> +0100
> fast-import: dumping crash report to
> /var/lib/public-inbox/repositories/ding.git/fast_import_crash_31402
> EOF from fast-import: at /usr/share/perl5/vendor_perl/PublicInbox/Import.pm
> line 96, <$r> line 54681.
>
> I fixed it manually. (But I think it's actually a valid mail address,
> even in this botched state.) I'm not sure what added the ">", it's
> not in the original mail.
>
> (I use public-inbox-1.3.0/git-2.25.0 on Void Linux.)
Gah, this looks like it's because Email::Address::XS leaves a
"<" in the name... Perhaps Import should delete all [<>]
characters unconditionally? (or swap in appropriate Unicode
homographs and assume users have the necessary glyphs...)
---------8<----------
Subject: [RFC] t/address.t: dump failing case
"PublicInbox::Address" (w/o "PP") is Email::Address::XS 1.04
from Debian 10:
PublicInbox::Address names: $VAR1 = [
'=?iso-8859-1?Q?Jochen_K=FCpper?= <usenet'
];
PublicInbox::Address emails: $VAR1 = [
'"=?iso-8859-1?Q?Jochen_K=FCpper?= <usenet"@example.de'
];
PublicInbox::AddressPP names: $VAR1 = [
'=?iso-8859-1?Q?Jochen_K=FCpper?='
];
PublicInbox::AddressPP emails: $VAR1 = [
'usenet"@example.de'
];
---
t/address.t | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/t/address.t b/t/address.t
index 6f4bff6c..8c39f04b 100644
--- a/t/address.t
+++ b/t/address.t
@@ -14,6 +14,11 @@ sub test_pkg {
[$emails->('User <[email protected]>, [email protected]')],
'address extraction works as expected');
+ my $odd = '"=?iso-8859-1?Q?Jochen_K=FCpper?= <usenet"@example.de';
+ use Data::Dumper;
+ diag "$pkg names: " . Dumper([$names->($odd)]);
+ diag "$pkg emails: " . Dumper([$emails->($odd)]);
+
is_deeply(['[email protected]'],
[$emails->('<[email protected] (Comment)>')],
'comment after domain accepted before >');
--
unsubscribe: one-click, see List-Unsubscribe header
archive: https://public-inbox.org/meta/