#28493 [Opn->Bgs]: php_imap.dll (and others) load failure on Windows 98
| From: | edink@php.net | Date: | Thu, 05 Aug 2004 21:44:22 +0000 |
| Subject: | #28493 [Opn->Bgs]: php_imap.dll (and others) load failure on Windows 98 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-64161@lists.php.net to get a copy of this message | ||
ID: 28493
Updated by: edink@php.net
Reported By: sanondysie at tc17 dot com
-Status: Open
+Status: Bogus
Bug Type: Dynamic loading
Operating System: Windows 98
PHP Version: 4.3.6
New Comment:
Imap is not supported on systems earlier that Windows 2000. This is
because it uses encryption functions in order to enable SSL connections
to the mail servers.
Previous Comments:
------------------------------------------------------------------------
[2004-05-30 16:12:33] sanondysie at tc17 dot com
Further research especially with a tool a little better suited
to the task available at http://www.dependencywalker.com/
clarifies the problem. The issue appears to be with two
calls in php_imap.dll:
EncryptMessage
DecryptMessage
that are imported from SECUR32.DLL.
Presumably these functions are exported
from SECUR32.DLL on WinNT platforms but not
on Win98.
A check of these versions of SECUR32.DLL
revealed that none of them export the required
functions:
SECUR32.DLL DateTime: 29-Apr-1998 FileVersion: 4.10.1998 (original
distribution)
SECUR32.DLL DateTime: 27-Mar-1999 FileVersion: 4.10.2177 (from some
upgrade)
SECUR32.DLL DateTime: 23-Apr-1999 FileVersion: 4.10.2222 (Win98SE)
I have not been able to check WinME version(s).
Appropriate patching of php_imap.dll's import table
to eliminate the problem references produces an image
that loads properly and provides imap function on
my Win98 systems. One hopes a better solution can be
provided.
------------------------------------------------------------------------
[2004-05-22 18:58:12] sanondysie at tc17 dot com
Description:
------------
This problem seems to present itself only on Win98 systems
(possibly on other Win9x as well). I have tested this on
an almost-out-of-the-box Win98 system as well a Win98 system
with all the latest MS patches including MSIE 6.0 SP1; symptoms
are identical. Systems ARE able to use the curl extension;
systems ARE able to use the gd2 extension. Systems are
NOT able to use the IMAP extension. There are many Usenet
messages about this problem as well; there doesn't seem to be
any solution that has been shown to work.
Symptoms can be demonstrated by either:
1) configure imap with php.ini, or
2) <?php dl ("php_imap.dll"); ?>
The error message returned is something like:
Unable to load dynamic library ...php_imap.dll
- A device attached to the system is not functioning.
A little bit more analysis with \windows\system\regsvr32 gives:
LoadLibrary ...php_imap.dll failed
GetLastError returns 0x0000001f.
The 0x1f (31) error maps to "device attached to the system is not
functioning"
is apparently a catch-all for errors for which the original
programmers
could not be bothered supplying details. However, this is NOT the
error
shown for missing DLLs (that's a 0x4xx error);
Analysis with scanbin (available from: http://www.bellamyjc.net/)
seems to show that there are two presumed problems with calls:
KERNEL32: LoadLibrarya
KERNEL32: GetProcAddress
The conclusion seems to be that the problem is inherent in
php_imap.dll itself, possibly the way in which is is built;
possibly some subtle API interface problem (with KERNEL32),
a difference between Win9x and WinNT kernels?
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28493&edit=1