Front page | perl.perl5.porters |
Postings from August 2013
[perl #105920] Perl parser sometimes tolerates stray nulls, sometimes not
From:
Brian Fraser via RT
Date:
August 7, 2013 02:31
Subject:
[perl #105920] Perl parser sometimes tolerates stray nulls, sometimes not
Message ID:
rt-3.6.HEAD-2552-1375842674-1102.105920-15-0@perl.org
On Sun Dec 11 13:15:49 2011, sprout wrote:
> Stray nulls are tolerated in files but not in string evals. Why is
> that? I know which piece of code is doing it, but is it by design?
> Why the inconsistency?
>
> #!perl -l
> print eval "6+5\0+3";
> warn $@ if $@;
>
> require PerlIO::scalar;
> unshift @INC, sub {
> return unless $_[1] eq 'foo.pm';
> open my $fh, '<', \"6+5\0+3"; $fh
> };
> print require foo;
> __END__
>
> This prints:
>
> syntax error at (eval 1) line 1, at EOF
> 14
>
> ---
> Flags:
> category=core
> severity=low
> ---
> Site configuration information for perl 5.15.5:
>
> Configured by sprout at Sat Nov 26 11:40:22 PST 2011.
>
> Summary of my perl5 (revision 5 version 15 subversion 5)
> configuration:
> Snapshot of: c071f8d7e26d951a082adc9cd79aae32680c01ae
> Platform:
> osname=darwin, osvers=10.5.0, archname=darwin-thread-multi-2level
> uname='darwin pint.local 10.5.0 darwin kernel version 10.5.0: fri
> nov 5 23:20:39 pdt 2010; root:xnu-1504.9.17~1release_i386 i386 '
> config_args='-de -Dusedevel -Duseithreads -Dmad'
> hint=recommended, useposix=true, d_sigaction=define
> 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 ='-fno-common -DPERL_DARWIN -fno-strict-aliasing
> -pipe -fstack-protector -I/usr/local/include',
> optimize='-O3',
> cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe
> -fstack-protector -I/usr/local/include'
> ccversion='', gccversion='4.2.1 (Apple Inc. build 5664)',
> gccosandvers=''
> intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
> d_longlong=define, longlongsize=8, d_longdbl=define,
> longdblsize=16
> ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
> alignbytes=8, prototype=define
> Linker and Libraries:
> ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags ='
> -fstack-protector -L/usr/local/lib'
> libpth=/usr/local/lib /usr/lib
> libs=-ldbm -ldl -lm -lutil -lc
> perllibs=-ldl -lm -lutil -lc
> libc=, so=dylib, useshrplib=false, libperl=libperl.a
> gnulibc_version=''
> Dynamic Linking:
> dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
> cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup
> -L/usr/local/lib -fstack-protector'
>
> Locally applied patches:
>
>
> ---
> @INC for perl 5.15.5:
> /usr/local/lib/perl5/site_perl/5.15.5/darwin-thread-multi-2level
> /usr/local/lib/perl5/site_perl/5.15.5
> /usr/local/lib/perl5/5.15.5/darwin-thread-multi-2level
> /usr/local/lib/perl5/5.15.5
> /usr/local/lib/perl5/site_perl
> .
>
> ---
> Environment for perl 5.15.5:
> DYLD_LIBRARY_PATH (unset)
> HOME=/Users/sprout
> LANG=en_US.UTF-8
> LANGUAGE (unset)
> LD_LIBRARY_PATH (unset)
> LOGDIR (unset)
>
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/bin
> PERL_BADLANG (unset)
> SHELL=/bin/bash
>
I would imagine this was not by design -- probably a leftover from back
when Perl used strlen() extensively.
--hugmeir
---
via perlbug: queue: perl5 status: new
https://rt.perl.org:443/rt3/Ticket/Display.html?id=105920
-
[perl #105920] Perl parser sometimes tolerates stray nulls, sometimes not
by Brian Fraser via RT