Front page | perl.perl5.porters |
Postings from January 2014
[perl #121085] stat dies on valid filename not existing
Thread Previous
|
Thread Next
From:
Linda Walsh
Date:
January 26, 2014 08:46
Subject:
[perl #121085] stat dies on valid filename not existing
Message ID:
rt-4.0.18-7536-1390725960-494.121085-75-0@perl.org
# New Ticket Created by Linda Walsh
# Please include the string: [perl #121085]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=121085 >
This is a bug report for perl from perl-diddler@tlinx.org,
generated with the help of perlbug 1.39 running under perl 5.16.3.
-----------------------------------------------------------------
[Please describe your issue here]
# next line uses ^V^J after 'test' to create file w/NL @ end of name
# note. This is a valid unix name.
> touch "test
"
Ishtar:/tmp> perl -MP -we 'use strict;
if (-e "test
") {
P "test exists";
}
'
test exists ## this works
Ishtar:/tmp> perl -MP -we 'use strict;
if (-e "test2
") {
P "test exists";
}
'
Unsuccessful stat on filename containing newline at -e line 2.
## ^^ perl dies at this point.. not a valid response to a
non-existent filename as following test doesn't die:
Ishtar:/tmp> perl -MP -w -e 'use strict;
if (-e "test2"
) {
P "test exists";
}
'
#(no output)
Perl should not die on a stat call failure.
(FWIW, the file name was downloaded from a website that had
something like
<... src="image.jpg
">
The file downloaded correctly though I think the 'nl' was
stripped off, but for a program storing the output from
a download html prog "as is", it was checking to see if the file
had already been d/l'ed and was stored locally.
Note that it's existance is verified if the file exists -- it
is only if the file doesn't exist that perl throws an invalid
error message and dies.
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=core
severity=medium
---
Site configuration information for perl 5.16.3:
Configured by law at Wed Jan 22 12:58:58 PST 2014.
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
Platform:
osname=linux, osvers=3.12.0-isht-van, archname=x86_64-linux-thread-multi-ld
uname='linux ishtar 3.12.0-isht-van #1 smp preempt wed nov 13 16:50:51 pst 2013 x86_64 x86_64 x86_64 gnulinux '
config_args=''
hint=previous, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=define
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-g -O2',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccversion='', gccversion='4.8.1 20130909 [gcc-4_8-branch revision 202388]', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='long double', nvsize=16, Off_t='off_t', lseeksize=8
alignbytes=16, prototype=define
Linker and Libraries:
ld='gcc', ldflags ='-g -fstack-protector -fPIC'
libpth=/usr/lib64 /lib64
libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.18.so, so=so, useshrplib=true, libperl=libperl-5.16.3.so
gnulibc_version='2.18'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/home/perl/perl-5.16.3/lib/x86_64-linux-thread-multi-ld/CORE'
cccdlflags='-fPIC', lddlflags='-shared -g -O2 -fstack-protector -fPIC'
Locally applied patches:
---
@INC for perl 5.16.3:
/home/law/bin/lib
/home/perl/perl-5.16.3/lib/site/x86_64-linux-thread-multi-ld
/home/perl/perl-5.16.3/lib/site
/home/perl/perl-5.16.3/lib/x86_64-linux-thread-multi-ld
/home/perl/perl-5.16.3/lib
.
---
Environment for perl 5.16.3:
HOME=/home/law
LANG=en_US.utf8
LANGUAGE (unset)
LC_COLLATE=C
LC_CTYPE=en_US.utf8
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/home/law/bin/lib:/sbin:/home/law/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:.:/usr/lib/qt3/bin:/opt/dell/srvadmin/bin:/usr/sbin:/etc/local/func_lib:/home/law/lib
PERL5OPT=-Mutf8 -CSA -I/home/law/bin/lib
PERL_BADLANG (unset)
SHELL=/bin/bash
Thread Previous
|
Thread Next