Issue 1155362: Bugs in parsedate_tz (original) (raw)

Issue1155362

Created on 2005-03-02 21:03 by therve, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (4)
msg24433 - (view) Author: Thomas Herve (therve) * Date: 2005-03-02 21:03
The parsing in emails is incomplete in both rfc822.py and _parseaddr.py. For example, "Wed, 02 Mar 2005 09:26:53+0800" is parsed but "Wed, 02 Mar 2005 09:26:53-0800" is not. The problem is clear by watching the code : only "+" timezones are corrected. Following a patch : Index : _parseaddr.py ---------------------------------------------------------------- @@ -60,7 +66,11 @@ def parsedate_tz(data): if i > 0: data[3:] = [s[:i], s[i+1:]] else: - data.append('') # Dummy tz + i = s.find('-') + if i > 0: + data[3:] = [s[:i], s[i:]] + else: + data.append('') # Dummy tz if len(data) < 5: return None data = data[:5] ----------------------------------------------------------------
msg24434 - (view) Author: Χρήστος Γεωργίου (Christos Georgiou) (tzot) * Date: 2005-03-20 11:48
Logged In: YES user_id=539787 Note that parsedate_tz as of current parses correctly "Wed, 02 Mar 2005 09:26:53 -0800" (space before '-'), because data.split() in line 43 produces five parts: [dow, date, month, year, time, timezone] (reduced to four by removing initial dow). The function includes a special check for "+" in the time part, and this patch adds the "-" check. I didn't find any date header in my whole email and newsgroup archive (12095 messages) missing the space before [-+]. However, if mail clients or servers exist that produce such date headers, patch should be applied and bug closed. Notes: Some test should be added too. I updated test_parsedate_no_dayofweek (line 2076 of lib/email/test/test_email.py) adding same test dropping the space before '-', and test fails before patch, succeeds after patch. Perhaps a separate test case should be included.
msg24435 - (view) Author: Thomas Herve (therve) * Date: 2005-03-20 12:35
Logged In: YES user_id=1038797 In fact, the mails I've seen with this problem are likely to be spam. I just thought it would be more logical to test both "+" and "-" as "+" was already well parsed.
msg124568 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-12-23 20:41
Committed a slightly different patch in r87451, with tests. Although I do consider this a bug fix, it hasn't apparently caused any problems in real life and does represent a slight behavior change, so I'm not backporting it.
History
Date User Action Args
2022-04-11 14:56:10 admin set github: 41642
2010-12-23 20:41:17 r.david.murray set status: open -> closednosy:barry, tzot, therve, r.david.murraymessages: + resolution: fixedstage: test needed -> resolved
2010-08-21 12:31:36 BreamoreBoy set versions: + Python 3.1, Python 2.7, Python 3.2, - Python 2.6
2010-05-05 13:48:18 barry set assignee: barry -> r.david.murraynosy: + r.david.murray
2009-02-15 23:56:25 ajaksu2 set stage: test neededtype: behaviorversions: + Python 2.6, - Python 2.3
2005-03-02 21:03:14 therve create