Skip Menu |
 

This queue is for tickets about the IO-Socket-SSL CPAN distribution.

Report information
The Basics
Id: 39213
Status: resolved
Priority: 0/
Queue: IO-Socket-SSL

People
Owner: Nobody in particular
Requestors: daniel.kraus [...] rz.uni-augsburg.de
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Bug in IO::Socket::SSL 1.15?
Date: Fri, 12 Sep 2008 13:11:29 +0200
To: bug-IO-Socket-SSL [...] rt.cpan.org
From: Daniel Kraus <daniel.kraus [...] rz.uni-augsburg.de>
Download (untitled) / with headers
text/plain 4.4k
Hi, maybe I found a bug in IO::Socket::SSL 1.15. If I run the code below and interrupt it with a SIGINT, SIGHUP or SIGTERM i get the following warning: "Use of uninitialized value in numeric eq (==) at /usr/local/share/perl/5.8.8/IO/Socket/SSL.pm line 1145." Here's my code: ############################################### #!/usr/bin/perl -Tw use strict; use IO::Socket::SSL; my ($daemon_signal) = ''; sub catch_signal { ($daemon_signal) = @_; } sub setup_signals { %SIG = ( 'CHLD' => 'IGNORE', 'HUP' => \&catch_signal, 'INT' => \&catch_signal, 'TERM' => \&catch_signal ); } my ($daemon, $client); $| = 1; setup_signals(); $daemon = IO::Socket::SSL->new( LocalPort => 443, ReuseAddr => 1, Listen => 5, SSL_key_file => '/tmp/server/key.pem', SSL_cert_file => '/tmp/server/cert.pem', SSL_verify_mode => 0x03, SSL_ca_file => '', SSL_ca_path => '/etc/ssl/ca' ) or die $!; while( 1 ) { if( $client = $daemon->accept() ) { print "New connection\n"; $client->close(); } last if( $daemon_signal ne '' ); } $daemon->close(); exit( 0 ); ############################################### Output of perl -V: Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.24.4, archname=i486-linux-gnu-thread-multi uname='linux ninsei 2.6.24.4 #1 smp preempt fri apr 18 15:36:09 pdt 2008 i686 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.8 -Dsitearch=/usr/local/lib/perl/5.8.8 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.8 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='4.1.2 20061115 (prerelease) (Debian 4.1.1-21)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt libc=/lib/libc-2.3.6.so, so=so, useshrplib=true, libperl=libperl.so.5.8.8 gnulibc_version='2.3.6' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Apr 25 2008 20:23:05 @INC: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . ############################################### Output of uname -a: Linux curcuma 2.6.20.14-workstation-1gb-smp #1 SMP Wed Jun 20 13:08:32 CEST 2007 i686 GNU/Linux ############################################### Cheers, Daniel -- Daniel Kraus .......................... http://www.rz.uni-augsburg.de/ Universitaet Augsburg, Rechenzentrum ............ Tel. (0821) 598-2014 D-86135 Augsburg ................................ Fax. (0821) 598-2028
Download (untitled) / with headers
text/plain 706b
I think it's a bad idea to globally force warnings using perl -cw, because this not only switches warnings on in your code but in all external code you use with the modules you inlude. If a module is safe regarding warnings it will usually put 'use warnings' on top, IO::Socket::SSL does not. Although it would be a good idea to work with warnings enabled, it's hard to move old code in this direction. I know, because I did it with other code. So no, it's not a bug, it's only a missing feature :) You should just not run IO::Socket::SSL was all warnings enabled. It's better to limit the scope of the warnings to your own code with 'use warnings' in your code, see perldoc warnings. Regards, Steffen


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.