[imp] R: [imp] IMP Login

Max Kalika max@the-triumvirate.net
Mon, 12 Mar 2001 07:31:45 -0800


---------------------- multipart/mixed attachment
Quoting Marco Giacomini <marco.giacomini@itcmattiussi.it>:

> Mar 11 01:21:29 mail popper[2268]: à7ÿ¿à7ÿ¿Ø2ÿ¿^Ro^R^H^X4D^H at
> mail.itcmattiussi.local (192.168.1.104): -ERR [AUTH] Password supplied for
> "à7ÿ¿à7ÿ¿Ø2ÿ¿^Ro^R^H^X4D^H" is incorrect.
> 
> Please notice that the login name was marco.giacomini, and here it seems
> that the user were à7ÿ¿à7ÿ¿Ø2ÿ¿^Ro^R^H^X4D^H

Guessing:

  OS:   Linux
  Host: localhost or a CNAME (not A record)
  PHP:  4.0.4(pl1)

If this is the case, then it is a known issue with PHP.  Anil made a patch
that I have verified to work.  It is attached.  Alternatively you can either 
wait for php-4.0.5, get the current CVS code (snaps.php.net), or downgrade to 
4.0.3pl1.  Good luck!

--mk23
---------------------- multipart/mixed attachment
--- ext/imap/php_imap.c.orig	Tue Mar  6 09:22:17 2001
+++ ext/imap/php_imap.c	Tue Mar  6 09:24:10 2001
@@ -25,7 +25,7 @@
    | PHP 4.0 updates:  Zeev Suraski <zeev@zend.com>                       |
    +----------------------------------------------------------------------+
  */
-/* $Id: php_imap.c,v 1.50 2000/10/25 17:43:52 andrei Exp $ */
+/* $Id: php_imap.c,v 1.57 2001/02/21 20:33:46 thies Exp $ */

 #define IMAP41

@@ -183,7 +183,19 @@
 void mail_close_it(zend_rsrc_list_entry *rsrc)
 {
 	pils *imap_le_struct = (pils *)rsrc->ptr;
+	IMAPLS_FETCH();
+
 	mail_close_full(imap_le_struct->imap_stream, imap_le_struct->flags);
+
+	if (IMAPG(imap_user)) {
+		efree(IMAPG(imap_user));
+		IMAPG(imap_user) = 0;
+	}
+	if (IMAPG(imap_password)) {
+		efree(IMAPG(imap_password));
+		IMAPG(imap_password) = 0;
+	}
+
 	efree(imap_le_struct);
 }

@@ -633,6 +645,14 @@
 		}
 	}

+	if (IMAPG(imap_user)) {
+		efree(IMAPG(imap_user));
+	}
+
+	if (IMAPG(imap_password)) {
+		efree(IMAPG(imap_password));
+	}
+
 	IMAPG(imap_user)     = estrndup(Z_STRVAL_PP(user), Z_STRLEN_PP(user));
 	IMAPG(imap_password) = estrndup(Z_STRVAL_PP(passwd), Z_STRLEN_PP(passwd));
 	
@@ -712,6 +732,8 @@
 				}
  			}
 			efree(hashed_details);
+			efree(IMAPG(imap_user)); IMAPG(imap_user) = 0;
+			efree(IMAPG(imap_password)); IMAPG(imap_password) = 0;
 			RETURN_FALSE;
 		}

@@ -721,6 +743,8 @@
 			node = malloc(sizeof(pils));
 			if (node == NULL) {
 				efree(hashed_details);
+				efree(IMAPG(imap_user)); IMAPG(imap_user) = 0;
+				efree(IMAPG(imap_password)); IMAPG(imap_password) = 0;
 				RETURN_FALSE;
 			}

@@ -757,6 +781,8 @@

 			free(headp);
 			efree(hashed_details);
+			efree(IMAPG(imap_user)); IMAPG(imap_user) = 0;
+			efree(IMAPG(imap_password)); IMAPG(imap_password) = 0;
  			RETURN_FALSE;
 		}

@@ -766,11 +792,11 @@
 	} else {
 #endif
 		imap_stream = mail_open(NIL, Z_STRVAL_PP(mailbox), flags);
-		efree(IMAPG(imap_user));
-		efree(IMAPG(imap_password));

 		if (imap_stream == NIL) {
 			php_error(E_WARNING, "Couldn't open stream %s\n", (*mailbox)->value.str.val);
+			efree(IMAPG(imap_user)); IMAPG(imap_user) = 0;
+			efree(IMAPG(imap_password)); IMAPG(imap_password) = 0;
 			RETURN_FALSE;
 		}

---------------------- multipart/mixed attachment--