Subject: | Bug with filename '0' |
Date: | Tue, 13 Oct 2015 18:07:39 +0300 |
To: | bug-Config-Tiny [...] rt.cpan.org |
From: | Григорий Кудренко <gragory.mail [...] gmail.com> |
Hello!
I found a small bug in Config::Tiny module version 2.22. When you try to
do read() or write() methods with filename'0' you will get an error 'No
file name provided'. It happened because shift returns undef when array
contains undef, empty or zero value. I would like to suggest you the
patch in attachment to fix this bug.
PS: Sorry for bad English =)
Information about system:
gragory@w1407539 /tmp/config-tiny $ perl -MConfig::Tiny -E 'say
$Config::Tiny::VERSION;'
2.22
gragory@w1407539 /tmp/config-tiny $ uname -a
Linux w1407539 4.0.5-gentoo #3 SMP Thu Aug 6 09:48:39 MSK 2015 x86_64
Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz GenuineIntel GNU/Linux
gragory@w1407539 /tmp/config-tiny $ perl -V
Summary of my perl5 (revision 5 version 20 subversion 2) configuration:
Platform:
osname=linux, osvers=3.18.9-gentoo, archname=x86_64-linux
uname='linux w1407539 3.18.9-gentoo #1 smp mon mar 23 14:40:00 msk
2015 x86_64 intel(r) core(tm) i7-4770k cpu @ 3.50ghz genuineintel gnulinux '
config_args='-des -Duseshrplib -Darchname=x86_64-linux
-Dcc=x86_64-pc-linux-gnu-gcc -Doptimize=-march=core-avx2 -O2 -pipe
-Dldflags=-Wl,-O1 -Wl,--as-needed -Dprefix=/usr -Dinstallprefix=/usr
-Dsiteprefix=/usr/local -Dvendorprefix=/usr -Dscriptdir=/usr/bin
-Dprivlib=/usr/lib64/perl5/5.20.2
-Darchlib=/usr/lib64/perl5/5.20.2/x86_64-linux
-Dsitelib=/usr/local/lib64/perl5/5.20.2
-Dsitearch=/usr/local/lib64/perl5/5.20.2/x86_64-linux
-Dvendorlib=/usr/lib64/perl5/vendor_perl/5.20.2
-Dvendorarch=/usr/lib64/perl5/vendor_perl/5.20.2/x86_64-linux
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3
-Dvendorman1dir=/usr/share/man/man1 -Dvendorman3dir=/usr/share/man/man3
-Dman1ext=1 -Dman3ext=3pm -Dlibperl=libperl.so.5.20.2
-Dlocincpth=/usr/include -Dglibpth=/lib64 /usr/lib64 -Duselargefiles
-Dd_semctl_semun -Dcf_by=Gentoo -Dmyhostname=localhost
-Dperladmin=root@localhost -Dinstallusrbinperl=n -Ud_csh -Uusenm
-Di_ndbm -Di_gdbm -Di_db -DDEBUGGING=none
-Dinc_version_list=5.20.0/x86_64-linux 5.20.0 5.20.1/x86_64-linux
5.20.1 -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64
-Dnoextensions=ODBM_File'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='x86_64-pc-linux-gnu-gcc', ccflags ='-fwrapv -fno-strict-aliasing
-pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-march=core-avx2 -O2 -pipe',
cppflags='-fwrapv -fno-strict-aliasing -pipe'
ccversion='', gccversion='4.8.3', 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='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='x86_64-pc-linux-gnu-gcc', ldflags ='-Wl,-O1 -Wl,--as-needed'
libpth=/usr/local/lib64 /lib64 /usr/lib64
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include-fixed /usr/lib
/lib/../lib64 /usr/lib/../lib64 /lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.20.so, so=so, useshrplib=true, libperl=libperl.so.5.20.2
gnulibc_version='2.20'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -march=core-avx2 -O2 -pipe
-Wl,-O1 -Wl,--as-needed'
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES
USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
Locally applied patches:
gentoo/hints_hpux - Fix hpux hints
gentoo/aix_soname - aix gcc detection and shared library soname
support
gentoo/EUMM-RUNPATH - https://bugs.gentoo.org/105054
cpan/ExtUtils-MakeMaker: drop $PORTAGE_TMPDIR from LD_RUN_PATH
gentoo/config_over - Remove -rpath and append LDFLAGS to lddlflags
gentoo/opensolaris_headers - [PATCH] Add headers for opensolaris
gentoo/patchlevel - List packaged patches for perl-5.20.2(#1) in
patchlevel.h
gentoo/cpanplus_definstalldirs - Configure CPANPLUS to use the
site directories by default.
gentoo/cleanup-paths - [PATCH] Cleanup PATH and shrpenv
gentoo/enc2xs - Tweak enc2xs to follow symlinks and ignore
missing @INC directories.
gentoo/enc2xs_checksums -
gentoo/darwin-cc-ld - https://bugs.gentoo.org/297751 [PATCH]
darwin: Use $CC to link
gentoo/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
gentoo/interix - [PATCH] Fix interix hints
gentoo/create_libperl_soname - https://bugs.gentoo.org/286840
[PATCH] Set libperl soname
gentoo/mod_paths - Add /etc/perl to @INC
gentoo/EUMM_delete_packlist -
gentoo/drop_fstack_protector - https://bugs.gentoo.org/348557
[PATCH] Don't force -fstack-protector on everyone
gentoo/usr_local - [PATCH] Remove /usr/local paths
gentoo/D-SHA-CFLAGS - https://bugs.gentoo.org/506818 [PATCH] Do
not set custom CFLAGS in cpan/Digest-SHA
gentoo/io_socket_ip_tests -
debian/cpan-missing-site-dirs - Fix CPAN::FirstTime defaults
with nonexisting site dirs if a parent is writable
debian/regcomp-mips-optim - Downgrade the optimization of
regcomp.c on mips and mipsel due to a gcc-4.9 bug
debian/perldoc-less-R - Tell the 'less' pager to allow terminal
escape sequences
debian/makemaker-pasthru - Pass LD settings through to
subdirectories
fixes/net_smtp_docs - [rt.cpan.org #36038] Document the
Net::SMTP 'Port' option
fixes/memoize_storable_nstore - [rt.cpan.org #77790]
Memoize::Storable: respect 'nstore' option not respected
fixes/document_makemaker_ccflags - [rt.cpan.org #68613] Document
that CCFLAGS should include $Config{ccflags}
Built under linux
Compiled at Apr 6 2015 12:30:46
@INC:
/etc/perl
/usr/local/lib64/perl5/5.20.2/x86_64-linux
/usr/local/lib64/perl5/5.20.2
/usr/lib64/perl5/vendor_perl/5.20.2/x86_64-linux
/usr/lib64/perl5/vendor_perl/5.20.2
/usr/local/lib64/perl5/5.20.1/x86_64-linux
/usr/local/lib64/perl5/5.20.1
/usr/local/lib64/perl5
/usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux
/usr/lib64/perl5/vendor_perl/5.20.1
/usr/lib64/perl5/vendor_perl
/usr/lib64/perl5/5.20.2/x86_64-linux
/usr/lib64/perl5/5.20.2
.
--
Best wishes,
Gragory Koudrenko
e-mail: gragory.mail@gmail.com
Message body is not shown because sender requested not to inline it.