Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

not initialized $_ causes SIGSEGV in Perl_sv_recode_to_utf8 #7592

Closed
p5pRT opened this issue Nov 11, 2004 · 7 comments
Closed

not initialized $_ causes SIGSEGV in Perl_sv_recode_to_utf8 #7592

p5pRT opened this issue Nov 11, 2004 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Nov 11, 2004

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

Searchable as RT32407$

@p5pRT
Copy link
Author

p5pRT commented Nov 11, 2004

From ae5t-ksn@asahi-net.or.jp

Created by ae5t-ksn@asahi-net.or.jp

When I run the following command line, perl dies with SIGSEGV.

  perl -Mencoding=utf-8 -e 'chomp'

With gdb, it dies at Perl_sv_recode_to_utf8(). I encountered this bug
by perl 5.8.4 on Debian (sid). Some my friends reported that
perl 5.8.5 on FreeBSD 4.10-stable, perl 5.8.4 on Solaris 9 causes
same problem.

  KUSANO Takayuki <URL​:http​://www.asahi-net.or.jp/~AE5T-KSN/>

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl v5.8.4:

Configured by Debian Project at Sat Nov  6 18:41:03 UTC 2004.

Summary of my perl5 (revision 5 version 8 subversion 4) configuration:
  Platform:
    osname=linux, osvers=2.6.10-rc1-bk1, archname=i386-linux-thread-multi
    uname='linux cyberhq 2.6.10-rc1-bk1 #1 smp sat oct 23 12:56:07 pdt 2004 i686 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i386-linux -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.4 -Dsitearch=/usr/local/lib/perl/5.8.4 -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.4 -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 -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 -I/usr/local/include'
    ccversion='', gccversion='3.3.5 (Debian 1:3.3.5-2)', 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.2.so, so=so, useshrplib=true, libperl=libperl.so.5.8.4
    gnulibc_version='2.3.2'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:
    


@INC for perl v5.8.4:
    /etc/perl
    /usr/local/lib/perl/5.8.4
    /usr/local/share/perl/5.8.4
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.8
    /usr/share/perl/5.8
    /usr/local/lib/site_perl
    .


Environment for perl v5.8.4:
    HOME=/home/mickn
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
    PERL_BADLANG (unset)
    SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Nov 12, 2004

From @schwern

On Thu, Nov 11, 2004 at 10​:23​:42AM -0000, ae5t-ksn @​ asahi-net. or. jp wrote​:

When I run the following command line, perl dies with SIGSEGV.

perl -Mencoding=utf-8 -e 'chomp'

With gdb, it dies at Perl_sv_recode_to_utf8(). I encountered this bug
by perl 5.8.4 on Debian (sid). Some my friends reported that
perl 5.8.5 on FreeBSD 4.10-stable, perl 5.8.4 on Solaris 9 causes
same problem.

I can reproduce with 5.8.5 on OS X 10.3.6. 5.8.1 RC3 that ships with OS X
does not core nor does bleadperl@​22511.

--
Michael G Schwern schwern@​pobox.com http​://www.pobox.com/~schwern/
I was *meant* to mount your donuts.

@p5pRT
Copy link
Author

p5pRT commented Nov 12, 2004

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

@p5pRT
Copy link
Author

p5pRT commented Nov 12, 2004

From @iabyn

On Fri, Nov 12, 2004 at 11​:53​:11AM -0500, Michael G Schwern wrote​:

On Thu, Nov 11, 2004 at 10​:23​:42AM -0000, ae5t-ksn @​ asahi-net. or. jp wrote​:

When I run the following command line, perl dies with SIGSEGV.

perl -Mencoding=utf-8 -e 'chomp'

With gdb, it dies at Perl_sv_recode_to_utf8(). I encountered this bug
by perl 5.8.4 on Debian (sid). Some my friends reported that
perl 5.8.5 on FreeBSD 4.10-stable, perl 5.8.4 on Solaris 9 causes
same problem.

I can reproduce with 5.8.5 on OS X 10.3.6. 5.8.1 RC3 that ships with OS X
does not core nor does bleadperl@​22511.

Looks like it was fixed with this change​:

  Change 23344 on 2004/10/02 by nicholas@​nicholas-saigo

  Perl_sv_recode_to_utf8 shouldn't be returning SvPVX(sv) without
  any check on whether it's valid.

Integrated into 5.8.6 with change 23386.

--
You live and learn (although usually you just live).

@p5pRT
Copy link
Author

p5pRT commented Nov 12, 2004

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

@p5pRT p5pRT closed this as completed Nov 12, 2004
@p5pRT
Copy link
Author

p5pRT commented Nov 12, 2004

From @nwc10

On Fri, Nov 12, 2004 at 05​:18​:51PM +0000, Dave Mitchell wrote​:

On Fri, Nov 12, 2004 at 11​:53​:11AM -0500, Michael G Schwern wrote​:

On Thu, Nov 11, 2004 at 10​:23​:42AM -0000, ae5t-ksn @​ asahi-net. or. jp wrote​:

When I run the following command line, perl dies with SIGSEGV.

perl -Mencoding=utf-8 -e 'chomp'

With gdb, it dies at Perl_sv_recode_to_utf8(). I encountered this bug
by perl 5.8.4 on Debian (sid). Some my friends reported that
perl 5.8.5 on FreeBSD 4.10-stable, perl 5.8.4 on Solaris 9 causes
same problem.

Thanks for this report.

I can reproduce with 5.8.5 on OS X 10.3.6. 5.8.1 RC3 that ships with OS X
does not core nor does bleadperl@​22511.

Looks like it was fixed with this change​:

Change 23344 on 2004/10/02 by nicholas@&#8203;nicholas\-saigo

Perl\_sv\_recode\_to\_utf8 shouldn't be returning SvPVX\(sv\) without
any check on whether it's valid\.

Integrated into 5.8.6 with change 23386.

Oh cool. I didn't have a regression test for the bug - I actually hit it
with ponie and merged it back to the regular perl.

p5p - which file should a regression test go in?

Therefore you should not see this bug in 5.8.6. Release candidate 1 is out.

ftp​://ftp.cpan.org/pub/CPAN/authors/id/N/NW/NWCLARK/perl-5.8.6-RC1.tar.bz2

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented Nov 12, 2004

From @schwern

On Fri, Nov 12, 2004 at 05​:22​:04PM +0000, Nicholas Clark wrote​:

p5p - which file should a regression test go in?

ext/Encode/t/encoding.t?

--
Michael G Schwern schwern@​pobox.com http​://www.pobox.com/~schwern/
If you got the wax out of your ears you could hear the twister picking up
the trailer park of your future!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant