Bug#474605: Bug#473572: iceape: After upgrade unable send mail

Mike Hommey mh at glandium.org
Wed Apr 16 17:57:51 UTC 2008


forwarded 474605 https://bugzilla.mozilla.org/show_bug.cgi?id=419116
thanks

On Tue, Apr 15, 2008 at 06:00:27PM -0300, Anthony Donegan wrote:
>
>
> Mike Hommey wrote:
>> On Mon, Mar 31, 2008 at 02:33:41PM +0200, Daniel Smolik wrote:
>>   
>>> Package: iceape
>>> Version: 1.0.13~pre080323b-0etch1
>>> Severity: important
>>>
>>> After upgrade to latest package from secutity iceape-mail is unable send
>>> mail. After press Send button alert is displayed "Unable to connect SMTP
>>> server ..." SMTP server is OK only downgrade iceape package solve problem.
>>>     
>>
>> I tried on both x86 and amd64 and couldn't reproduce the issue :(
>>
>> Does it work better with a new profile ? Is there some useful message in
>> the error console (Tools -> Web Development -> Error Console) ?
>>
>> Mike
>>
>>   
> I think that the treatment of Outgoing SMTP servers which have no  
> usernames is indeed broken by the iceape-mailnews security patch.
>
> A workaround which works on my system:
>
> 1. Open the browser with "iceape -browser about:config".
> 2. Filter "smtp".
> 3. Check "mail.smtp.defaultserver" is "smtp1".
> 4. Set "mail.smtpserver.smtp1.auth_method" to 0.
> 5. Right click on "mail.smtpserver.smtp1.username" and select Reset.

Thanks to these informations, I finally was able to reproduce the bug
and find the problem.

The following patch is responsible for the regression:
--- iceape-1.0.12~pre080131b/netwerk/base/src/nsURLParsers.cpp  2004-11-07 21:43:38.000000000 +0100
+++ iceape-1.0.13~pre080323b/netwerk/base/src/nsURLParsers.cpp  2008-03-24 17:27:59.000000000 +0100
@@ -531,9 +531,16 @@
     if (userinfoLen < 0)
         userinfoLen = strlen(userinfo);
 
+    if (userinfoLen == 0)
+        return NS_ERROR_MALFORMED_URI;
+
     const char *p = (const char *) memchr(userinfo, ':', userinfoLen);
     if (p) {
         // userinfo = <username:password>
+        if (p == userinfo) {
+            // must have a username!
+            return NS_ERROR_MALFORMED_URI;
+        }
         SET_RESULT(username, 0, p - userinfo);
         SET_RESULT(password, p - userinfo + 1, userinfoLen - (p - userinfo + 1));
     }

Why? Because in some (strange) configurations, the smtp url construction
leads to (broken) urls in the form: smtp://@host:25/
In such an url is rejected by the new code.

Finding the responsible patch also allowed to find the fix and the
associated bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=419116

Mike





More information about the pkg-mozilla-maintainers mailing list