[Net-ssleay-devel] Testers for svn trunk, please.

Mike McCauley mikem at open.com.au
Thu Jul 27 12:10:33 UTC 2006


Hi Florian,

On Wednesday 26 July 2006 22:30, Florian Ragwitz wrote:
> On Wed, Jul 26, 2006 at 10:00:11AM +1000, Mike McCauley wrote:

> > 3. The link phase of the ssleay.dll fails, because the necessary switches
> > set by  ssleay_get_build_opts (lib_paths and lib_links) dont end up on
> > the link command line. The resulting link command line is:

This problem is now fixed: it required a change in ssleay_get_build_opts, 
changing
        push @{ $opts->{lib_paths} }, "-L$prefix/lib/VC";
to
        push @{ $opts->{lib_paths} }, "$prefix/lib/VC";

I have committed this change to svn.

So now it compiles and links on Windows, but a number of tests fail, and there 
is a crash:

t/local/07_sslecho...............NOK 12 
#   Failed test 'accept' 
#   in t/local/07_sslecho.t at line 61. 
t/local/07_sslecho...............NOK 14 
#   Failed test 'ssl_read_all' 
#   in t/local/07_sslecho.t at line 66. 
#          got: '' 
#     expected: 'ssleay-test' 
t/local/07_sslecho...............NOK 15 
#   Failed test 'ssl_write_all' 
Use of uninitialized value in string eq at t/local/07_sslecho.t line 110. 
#   in t/local/07_sslecho.t at line 67. 
Free to wrong pool 212c88 not 30c0121 at t/local/07_sslecho.t line 220.

The debugger shows the crash occurs in ssleay_verify_callback_invoke() inside 
the call to
	count = call_sv(*callback, G_SCALAR);


If I remove all the calls to Net::SSLeay::X509_NAME_oneline from 
t/local/07_sslecho.t it doesnt crash.
If I comment out the free(buf); in X509_NAME_oneline it doesnt crash.
But.... X509_NAME_oneline allocs a buffer and what else can you do but free() 
it? Why does the free crash? 

The few comments I see about "Free to wrong pool"  indicate that this type of 
crash is generally a symptom of a memory/thread problem elsewhere. I note 
that  t/local/07_sslecho.t uses fork() which on Windows uses threads to 
implement.

Cheers.

> >
> >         link -out:blib\arch\auto\Net\SSLeay\SSLeay.dll -dll -nologo
> > -nodefaultli
> > b -debug -opt:ref,icf  -libpath:"C:\Perl\lib\CORE"  -machine:x86
> > SSLeay.obj C:
> > \Perl\lib\CORE\perl58.lib "C:\Program Files\Microsoft Visual
> > Studio\VC98\lib\old
> > names.lib" "C:\Program Files\Microsoft SDK\Lib\.\kernel32.lib"
> > "C:\Program Files
> > \Microsoft SDK\Lib\.\user32.lib" "C:\Program Files\Microsoft SDK\Lib\.
> > \gdi32.lib
> > " "C:\Program Files\Microsoft SDK\Lib\.\winspool.lib" "C:\Program
> > Files\Microsof
> > t SDK\Lib\.\comdlg32.lib" "C:\Program Files\Microsoft
> > SDK\Lib\.\advapi32.lib" "C
> >
> > :\Program Files\Microsoft SDK\Lib\.\shell32.lib" "C:\Program
> > : Files\Microsoft
> >
> > SDK
> > \Lib\.\ole32.lib" "C:\Program Files\Microsoft SDK\Lib\.\oleaut32.lib" "C:
> > \Progra
> > m Files\Microsoft SDK\Lib\.\netapi32.lib" "C:\Program Files\Microsoft
> > SDK\Lib\.\
> > uuid.lib" "C:\Program Files\Microsoft SDK\Lib\.\ws2_32.lib" "C:\Program
> > Files\Mi
> > crosoft SDK\Lib\.\mpr.lib" "C:\Program Files\Microsoft
> > SDK\Lib\.\winmm.lib" "C:\
> > Program Files\Microsoft SDK\Lib\.\version.lib" "C:\Program
> > Files\Microsoft SDK\L
> > ib\.\odbc32.lib" "C:\Program Files\Microsoft SDK\Lib\.\odbccp32.lib" "C:
> > \Program
> >  Files\Microsoft Visual Studio\VC98\lib\msvcrt.lib" -def:SSLeay.def
>
> What's the error you get? How is this commandline supposed to look like?
>
> > Also, some Unixish command line options make it onto the Windows compiler
> > command lines (such as -g)
>
> OK, will be fixed soon.
>
> > Im note sure if this is because Module::Build also needs to make it into
> > the dist? Or does Module::Install really support Windows properly?
>
> Yes, it does. Quite well actually. It's the M::I extension in ext/ which
> seems to be broken.

-- 
Mike McCauley                               mikem at open.com.au
Open System Consultants Pty. Ltd            Unix, Perl, Motif, C++, WWW
9 Bulbul Place Currumbin Waters QLD 4223 Australia   http://www.open.com.au
Phone +61 7 5598-7474                       Fax   +61 7 5598-7070

Radiator: the most portable, flexible and configurable RADIUS server 
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, 
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, 
TTLS, PEAP etc on Unix, Windows, MacOS, NetWare etc.



More information about the Net-ssleay-devel mailing list