Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.9k stars 542 forks source link

unpack 'Z*a', '123' causes panic #8815

Closed p5pRT closed 17 years ago

p5pRT commented 17 years ago

Migrated from rt.perl.org#41669 (status was 'resolved')

Searchable as RT41669$

p5pRT commented 17 years ago

From @nlitsme

Created by @nlitsme

$ perl -e "unpack 'Z*a'\, '123'" panic​: sv_setpvn called with negative strlen at -e line 1.

there is already a similar (closed) ticket 21987\, which mentions a panic with an empty string.

Perl Info ``` Flags: category=core severity=medium Site configuration information for perl v5.8.8: Configured by SYSTEM at Tue Jan 23 15:57:26 2007. Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef 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='cl', ccflags ='-nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX', optimize='-MD -Zi -DNDEBUG -O1', cppflags='-DWIN32' ccversion='12.00.8804', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\local\Perl588\lib\CORE" -machine:x86' libpth=\lib libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\local\Perl588\lib\CORE" -machine:x86' Locally applied patches: ACTIVEPERL_LOCAL_PATCHES_ENTRY Iin_load_module moved for compatibility with build 806 Avoid signal flag SA_RESTART for older versions of HP-UX PerlEx support in CGI::Carp Less verbose ExtUtils::Install and Pod::Find Patch for CAN-2005-0448 from Debian with modifications Rearrange @INC so that 'site' is searched before 'perl' Partly reverted 24733 to preserve binary compatibility 29930 win32.c typo in #define MULTIPLICITY 29868 win32_async_check() can still loop indefinitely 29690,29732 ANSIfy the PATH environment variable on Windows 29689 Add error handling to win32_ansipath 29675 Use short pathnames in $^X and @INC 29607,29676 allow blib.pm to be used for testing Win32 module 29605 Implement killpg() for MSWin32 29598 cwd() to return the short pathname 29597 let readdir() return the alternate filename 29590 Don't destroy the Unicode system environment on Perl startup 29528 get ext/Win32/Win32.xs to compile on cygwin 29509,29510,29511 Move Win32::* functions into Win32 module 29483 Move Win32 from win32/ext/Win32 to ext/Win32 29481 Makefile.PL changes to compile Win32.xs using cygwin 28671 Define PERL_NO_DEV_RANDOM on Windows 28376 Add error checks after execing PL_cshname or PL_sh_path 28305 Pod::Html should not convert \"foo\" into ``foo'' 27833 Change anchor generation in Pod::Html for '=item item 2' 27832,27847 fix Pod::Html::depod() for multi-line strings 27736 Make perl_fini() run with Sun WorkShop compiler 27719 Document the functions htmlify() and anchorify() in Pod::Html 27619 Bug in Term::ReadKey being triggered by a bug in Term::ReadLine 27549 Move DynaLoader.o into libperl.so 27528 win32_pclose() error exit doesn't unlock mutex 27527 win32_async_check() can loop indefinitely 27515 ignore directories when searching @INC 27359 Fix -d:Foo=bar syntax 27210 Fix quote typo in c2ph 27203 Allow compiling swigged C++ code 27200 Make stat() on Windows handle trailing slashes correctly 27194 Get perl_fini() running on HP-UX again 27133 Initialise lastparen in the regexp structure 27061 L and Pod::Html 27034 Avoid \"Prototype mismatch\" warnings with autouse 26970 Make Passive mode the default for Net::FTP 26921 Avoid getprotobyname/number calls in IO::Socket::INET 26897,26903 Make common IPPROTO_* constants always available 26670 Make '-s' on the shebang line parse -foo=bar switches 26637 Make Borland and MinGW happy with change 26379 26536 INSTALLSCRIPT versus INSTALLDIRS 26379 Fix alarm() for Windows 2003 26087 Storable 0.1 compatibility 25861 IO::File performace issue 25084 long groups entry could cause memory exhaustion 24699 ICMP_UNREACHABLE handling in Net::Ping @INC for perl v5.8.8: C:/local/Perl588/site/lib C:/local/Perl588/lib . Environment for perl v5.8.8: HOME=c:\local\etc LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=c:\local\gpg;N:\local\projects\perl6\pugs;c:\Progra~1\ARM\RVCT\Programs\2.2\503\win_32-pentium;c:\Program Files\svn-win32-1.4.3\bin;c:\program files\cvsnt;c:\local\nmap-4.20;c:\program files\support tools;C:\Program Files\Microsoft Visual Studio .NET 2003\vc7\PlatformSDK\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\vc7\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\common7\IDE;C:\Program Files\PC Connectivity Solution\;c:\local\cygwin\usr\local\bin;c:\local\bin;c:\local\vim\vim70;c:\local\sysint;C:\local\Perl588\site\bin;C:\local\Perl588\bin;c:\local\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\Program Files\Microsoft eMbedded C++ 4.0\Common\EVC\BIN;c:\Program Files\Microsoft eMbedded C++ 4.0\common\tools;c:\Program Files\Microsoft eMbedded C++ 4.0\evc\wce420\bin;c:\Program Files\Microsoft Platform SDK for Windows XP SP2\bin PERL=c:\local\perl588 PERL6LIB=N:\local\projects\perl6\pugs\lib PERL_BADLANG (unset) SHELL (unset) ```
p5pRT commented 17 years ago

From @rgarcia

On 02/03/07\, via RT willem \perlbug\-followup@​perl\.org wrote​:

$ perl -e "unpack 'Z*a'\, '123'" panic​: sv_setpvn called with negative strlen at -e line 1.

there is already a similar (closed) ticket 21987\, which mentions a panic with an empty string.

I don't reproduce this with bleadperl\, so it seems solved.

$ ./perl -Ilib -wE 'say unpack "Z*a"\, "123"' 123

The result looks correct to me.

p5pRT commented 17 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 17 years ago

From @nwc10

On Sat\, Mar 03\, 2007 at 08​:53​:04AM +0100\, Rafael Garcia-Suarez wrote​:

On 02/03/07\, via RT willem \perlbug\-followup@​perl\.org wrote​:

$ perl -e "unpack 'Z*a'\, '123'" panic​: sv_setpvn called with negative strlen at -e line 1.

there is already a similar (closed) ticket 21987\, which mentions a panic with an empty string.

I don't reproduce this with bleadperl\, so it seems solved.

$ ./perl -Ilib -wE 'say unpack "Z*a"\, "123"' 123

The result looks correct to me.

I get this on maint​:

$ ./perl -Ilib -lwe "print unpack 'Z*a'\, '123'" 123

So I think that it will be solved in 5.8.9

Nicholas Clark

p5pRT commented 17 years ago

From @nlitsme

Rafael Garcia-Suarez via RT wrote​:

On 02/03/07\, via RT willem \perlbug\-followup@​perl\.org wrote​:

$ perl -e "unpack 'Z*a'\, '123'" panic​: sv_setpvn called with negative strlen at -e line 1.

there is already a similar (closed) ticket 21987\, which mentions a panic with an empty string.

I don't reproduce this with bleadperl\, so it seems solved.

$ ./perl -Ilib -wE 'say unpack "Z*a"\, "123"' 123

The result looks correct to me.

I tried with more perl versions now​:

panic with perl 5.8.7 and perl 5.8.8

in perl 5.005_03 and 5.6.1 it works fine

willem

p5pRT commented 17 years ago

@smpeters - Status changed from 'open' to 'resolved'