Skip Menu |
 

This queue is for tickets about the Crypt-SSLeay CPAN distribution.

Report information
The Basics
Id: 62150
Status: resolved
Priority: 0/
Queue: Crypt-SSLeay

People
Owner: nanis [...] runu.moc.invalid
Requestors: jand [...] ActiveState.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: 0.60_01

Attachments


Subject: CRYPT_SSLEAY_free() may call the wrong free() function on Windows.
Date: Thu, 14 Oct 2010 13:30:32 -0700
To: <bug-Crypt-SSLeay [...] rt.cpan.org>
From: "Jan Dubois" <jand [...] activestate.com>
Download (untitled) / with headers
text/plain 1.3k
On Windows Perl is built with the -DPERL_IMPLICIT_SYS compile option, which redirects many C runtime functions through an additional abstraction layer. Amon other things it points malloc/free to an internal version that maintains heaps per Perl interpreter (for embedding purposes). That means when you call free() in XS code you won't get the C runtime version, but the wrapper from the Perl layer. Using it to free memory that hasn't been allocated by the corresponding malloc() will generate a fatal error (free to wrong pool): t/00-basic.t .... ok t/01-connect.t .. ok # config on MSWin32 # ssl in ..\openssl # lib -L..\openssl\out32 -lssleay32 -llibeay32 -lRSAglue -lrsaref # inc -I..\openssl\inc32 -I..\openssl\inc32 # cc cl Free to wrong pool 35e60 not 30c01a6 at C:/tmp/perl/lib/LWP/Protocol/https.pm line 36. t/02-live.t ..... Dubious, test returned 5 (wstat 1280, 0x500) Failed 1/4 subtests (less 1 skipped subtest: 2 okay) Test Summary Report ------------------- t/02-live.t (Wstat: 1280 Tests: 3 Failed: 0) Non-zero exit status: 5 Parse errors: Bad plan. You planned 4 tests but ran 3. Files=3, Tests=23, 14 wallclock secs ( 0.04 usr + 0.00 sys = 0.04 CPU) Result: FAIL A simple way to avoid the redirection is to define the NO_XSLOCKS preprocessor symbol before including XSUB.h. I've attached a patch that does exactly that. Cheers, -Jan

Message body is not shown because sender requested not to inline it.

Download (untitled) / with headers
text/plain 1.6k
Thank you very much for this patch. It will be included in the next developer release (which is overdue by a couple of weeks now -- life and $work intervened). -- Sinan On Thu Oct 14 16:30:49 2010, jand@ActiveState.com wrote: Show quoted text
> On Windows Perl is built with the -DPERL_IMPLICIT_SYS compile option, > which redirects many C runtime functions through an additional > abstraction layer. Amon other things it points malloc/free to an > internal version that maintains heaps per Perl interpreter (for > embedding purposes). > > That means when you call free() in XS code you won't get the C runtime > version, but the wrapper from the Perl layer. Using it to free memory > that hasn't been allocated by the corresponding malloc() will generate > a > fatal error (free to wrong pool): > > > t/00-basic.t .... ok > t/01-connect.t .. ok > # config on MSWin32 > # ssl in ..\openssl > # lib -L..\openssl\out32 -lssleay32 -llibeay32 -lRSAglue -lrsaref > # inc -I..\openssl\inc32 -I..\openssl\inc32 > # cc cl > Free to wrong pool 35e60 not 30c01a6 at > C:/tmp/perl/lib/LWP/Protocol/https.pm line 36. > t/02-live.t ..... > Dubious, test returned 5 (wstat 1280, 0x500) > Failed 1/4 subtests > (less 1 skipped subtest: 2 okay) > > Test Summary Report > ------------------- > t/02-live.t (Wstat: 1280 Tests: 3 Failed: 0) > Non-zero exit status: 5 > Parse errors: Bad plan. You planned 4 tests but ran 3. > Files=3, Tests=23, 14 wallclock secs ( 0.04 usr + 0.00 sys = 0.04 > CPU) > Result: FAIL > > A simple way to avoid the redirection is to define the NO_XSLOCKS > preprocessor symbol before including XSUB.h. > > I've attached a patch that does exactly that. > > Cheers, > -Jan >
Download (untitled) / with headers
text/plain 139b
I finally applied the patch. I will mark this resolved when I upload 0.61_01. Thank you again and apologies for the long delay. -- Sinan


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.