From: <pdo...@us...> - 2022-05-22 22:30:14
|
Revision: 14959 http://sourceforge.net/p/squirrelmail/code/14959 Author: pdontthink Date: 2022-05-22 22:30:12 +0000 (Sun, 22 May 2022) Log Message: ----------- Fix: Login mechanisms other than "login" were broken if server returned untagged data before login response (#2854) Modified Paths: -------------- trunk/squirrelmail/functions/imap_general.php Modified: trunk/squirrelmail/functions/imap_general.php =================================================================== --- trunk/squirrelmail/functions/imap_general.php 2022-05-22 22:15:28 UTC (rev 14958) +++ trunk/squirrelmail/functions/imap_general.php 2022-05-22 22:30:12 UTC (rev 14959) @@ -908,6 +908,11 @@ $read=sqimap_fgets($imap_stream); } } + // IMAP server might return some untagged info before + // the tagged login command response - skip over that + while ($read[0] === '*') { + $read = sqimap_fgets($imap_stream); + } $results=explode(" ",$read,3); $response=$results[1]; $message=$results[2]; @@ -936,7 +941,7 @@ * credentials and use that as the authorization identity. */ $tag=sqimap_session_id(false); - $sasl = (isset($sqimap_capabilities['SASL-IR']) && $sqimap_capabilities['SASL-IR']) ? true : false; + $sasl = sqimap_capability($imap_stream, 'SASL-IR'); if(!empty($authz)) { $auth = base64_encode("$username\0$authz\0$password"); } else { @@ -957,6 +962,11 @@ $read = sqimap_fgets($imap_stream); } } + // IMAP server might return some untagged info before + // the tagged login command response - skip over that + while ($read[0] === '*') { + $read = sqimap_fgets($imap_stream); + } $results=explode(" ",$read,3); $response=$results[1]; $message=$results[2]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |