another patch which i create this one:
http://www.lfarkas.org/pocket-pc/openssl/openssl-ce.patch
which are mainly bugfix in the current openssl code and only win ce specific so it could be apply without hurt other part of the openssl code.

As for crtypto/dso/dso_win32.c.

-       h = LoadLibrary(filename);
+       h = LoadLibrary((LPCTSTR)filename);

Just casting to LPCTSTR doesn't make everything right. TCHAR is always WCHAR under CE, while filename is *always* char*. You either have to explicitly call LoadLibraryA or detect when conversion to WCHAR is due and convert. In HEAD branch it's suggested to fix with explicit call to LoadLibraryA.

+#ifndef OPENSSL_SYS_WINCE
        sym = GetProcAddress(*ptr, symname);
+#else
+       sym = GetProcAddress(*ptr, (LPCWSTR)symname);
+#endif

Same applies to GetProcAddress. symnane is *always* char* and casting to LPCWSTR doesn't make it Unicode. See end of http://cvs.openssl.org/getfile/openssl/crypto/dso/dso_win32.c?v=1.22 for proper solution. Idea is to explicitly call GetProcAddressA when available [should be implemented in WCE>=3.0] or implement own GetProcAddressA shim, which would interface to "native" GetProcAddressW.


As for crypto/rand/rand_win.c. Why? Then why buf[64]? Its usage below is controlled by more complicated #if statement, meaning that suggested patch will break something.


As for crypto/rc2/rc2_skey.c. Would it be enough to initialize ki with NULL? Does it really have to be &c? A.

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to