Perl / perl5

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

File::Path 1.04 bug (all perl5 core versions) #71

Closed p5pRT closed 20 years ago

p5pRT commented 24 years ago

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

Searchable as RT873$

p5pRT commented 24 years ago

From wpm@ms.com

A bug in File​::Path caused some very serious outages here. A bug in code which *uses* File​::Path called rmtree() with an uninitialized first argument. Unfortunately\, rmtree() behaves by defaulting to assume that you want to remove /.

This is *bad* default behavior. The patch below will at least check that $roots has a true value\, and will return 0 otherwise.

This applies to all the existing perl releases\, that include File​::Path 1.04 or 1.0401\, most importantly including all the latest maintenance releases.

*** /ms/dist/perl5/PROJ/core/5.00503/lib/perl5/File/Path.pm Thu Apr 22 11​:52​:32 1999 --- /ms/user/w/wpm/tmp/Path.pm Tue Jun 15 17​:37​:48 1999 *************** *** 148\,157 ****   my($roots\, $verbose\, $safe) = @​_;   my(@​files);   my($count) = 0; - $roots = [$roots] unless ref $roots;   $verbose ||= 0;   $safe ||= 0;  
  my($root);   foreach $root (@​{$roots}) {   $root =~ s#/$##; --- 148\,164 ----   my($roots\, $verbose\, $safe) = @​_;   my(@​files);   my($count) = 0;   $verbose ||= 0;   $safe ||= 0;  
+ if ( defined($roots) && length($roots) ) { + $roots = [$roots] unless ref $roots; + } + else { + carp "No root path(s) specified\n"; + return 0; + } +   my($root);   foreach $root (@​{$roots}) {   $root =~ s#/$##;


This perlbug was built using Perl 5.00503 - Thu May 20 11​:43​:00 EDT 1999 It is being executed now by Perl 5.00503 - Thu May 20 11​:45​:48 EDT 1999.

Site configuration information for perl 5.00503​:

Configured by wpm at Thu May 20 11​:45​:48 EDT 1999.

Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration​:   Platform​:   osname=solaris\, osvers=2.5.1\, archname=sun4-solaris   uname='sunos sascs1 5.5.1 generic_103640-24 sun4u sparc sunw\,ultra-enterprise '   hint=recommended\, useposix=true\, d_sigaction=define   usethreads=undef useperlio=undef d_sfio=undef   Compiler​:   cc='cc'\, optimize='-O'\, gccversion=   cppflags='-DAPPLLIB_EXP="/ms/dist/perl5/VERS/5.00503-core/lib/perl5​:/ms/dist/perl5/VERS/5.005-core/lib/perl5" -I/usr/local/include'   ccflags ='-DAPPLLIB_EXP="/ms/dist/perl5/VERS/5.00503-core/lib/perl5​:/ms/dist/perl5/VERS/5.005-core/lib/perl5" -I/usr/local/include'   stdchar='unsigned char'\, d_stdstdio=define\, usevfork=false   intsize=4\, longsize=4\, ptrsize=4\, doublesize=8   d_longlong=define\, longlongsize=8\, d_longdbl=define\, longdblsize=16   alignbytes=8\, usemymalloc=n\, prototype=define   Linker and Libraries​:   ld='cc'\, ldflags =' -L/usr/local/lib'   libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib   libs=-lsocket -lnsl -ldb -ldl -lm -lc -lcrypt   libc=/lib/libc.so\, so=so\, useshrplib=false\, libperl=libperl.a   Dynamic Linking​:   dlsrc=dl_dlopen.xs\, dlext=so\, d_dlsymun=undef\, ccdlflags=' '   cccdlflags='-KPIC'\, lddlflags='-G -L/usr/local/lib'

Locally applied patches​:  


@​INC for perl 5.00503​:   /ms/dist/perl5/VERS/5.00503-core/lib/perl5   /ms/dist/perl5/VERS/5.005-core/lib/perl5   /ms/dist/perl5/PROJ/core/5.00503/exec/lib/perl5   /ms/dist/perl5/PROJ/core/5.00503/common/lib/perl5   /ms/dist/perl5/VERS/5.00503/lib/perl5   /ms/dist/perl5/VERS/5.005/lib/perl5   /ms/dist/perl5/lib/perl5   /ms/dist/aurora/lib/perl5   .


Environment for perl 5.00503​:   HOME=/ms/user/w/wpm   LANG=C   LANGUAGE (unset)   LD_LIBRARY_PATH=/usr/dt/lib​:/opt/softbench/lib​:/usr/openwin/lib​:/ms/dist/aurora/lib   LOGDIR (unset)   PATH=/ms/dist/msjava/PROJ/jdk/1.2/exec/bin​:/ms/dist/perl5/bin​:/ms/dist/i18n/bin​:/ms/dist/afs/PROJ/vms/beta/common/bin​:/ms/dist/afs/PROJ/vms/beta/common/sbin​:/ms/dist/msde/PROJ/msde/1.4/bin​:/ms/user/w/wpm/bin​:/ms/user/w/wpm/bin/@​sys​:/ms/dist/aurora/hackbin​:/ms/dist/aurora/bin​:/bin​:/usr/ccs/bin​:/usr/ucb​:/ms/dist/fsf/bin​:/ms/dist/afs/bin​:/ms/dist/aurora/sbin​:/usr/sbin​:/ms/dist/afs/sbin​:.​:/ms/dist/eoffice/bin​:/ms/dist/mq/sbin​:/ms/dist/mq/bin​:/opt/mqm/bin​:/opt/mqm/samp/bin​:/ms/dist/syb/bin​:/usr/dt/bin​:/usr/openwin/bin   PERL_BADLANG (unset)   SHELL=/bin/ksh

p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

fixed in change @​2695

p5pRT commented 20 years ago

From The RT System itself

fixed in change @​2695