[PATCH] Debian patches

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Attached are the patches to Debian's 5.8.4 package not currently covered
by my latest rsync of perl-5.8.x.  The patches have been re-worked to
apply cleanly to that branch, but all should be applicable to
perl-current as well.

  10_fix_file_path
    Rewrite of File::Path::rmtree.  This is the most important patch, it
    replaces rmtree with a recursive function to remove a race condition
    which potentially allows an attacker to make files suid or to remove
    arbitrary files (CAN-2005-0448), and incorporates the earlier fix
    to use less permissive chmods (CAN-2004-0452).

    NOTE: while this patch should work on any POSIX system, I made no
    attempt to handle the VMS or MacOS special cases that were in the
    original.  Assistance is required to deal with those cases.

  14_fix_close
    A patch from Jim Meyering to propagate IO errors to the exit status
    of close.

  03_fix_gnu.sh
  04_fix_gnubsd_hints
    Configure fixes for Hurd and BSD Debian variants.

  15_fix_verbatim_pod_dash
    Prevent groff's desire to convert a perfectly good "-" to a purdy
    utf8 hyphen character in verbatim text,

  17_fix_net_nntp
    Fix a precedence error in Net:NNTP::article.

  19_fix_getopts.pl
    Avoid a spurious undefined warning when using warnings.

  00_fix_instmodsh_doc
  06_fix_perl_synopsis
  18_fix_devel_dprof
  20_fix_a2p_manpage
  21_fix_perlreref_octal
    Random documentation bugs.

--bod

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=00_fix_instmodsh_doc

Add simple manpage for instmodsh.

diff -Naur maint/lib/ExtUtils/instmodsh maint-patched/lib/ExtUtils/instmodsh
--- maint/lib/ExtUtils/instmodsh	2004-01-06 10:01:11.000000000 +1100
+++ maint-patched/lib/ExtUtils/instmodsh	2005-03-10 22:41:23.000000000 +1100
@@ -137,3 +137,28 @@
 toplevel();
 
 ################################################################################
+
+__END__
+
+=head1 NAME
+
+instmodsh - interactive inventory for installed Perl modules
+
+=head1 SYNOPSIS
+
+instmodsh
+
+=head1 DESCRIPTION
+
+C<instmodsh> provides an interactive shell to query details of
+installed Perl modules.
+
+The shell provides a list of installed modules, each of which
+may be queried to to list files and directories, checked for missing
+files or packaged up as a tar archive.
+
+=head1 SEE ALSO
+
+ExtUtils::Installed(3perl)
+
+=cut

--qDbXVdCdHGoSgWSk
Content-Type: application/x-sh
Content-Disposition: attachment; filename="03_fix_gnu.sh"
Content-Transfer-Encoding: quoted-printable

Debian bug #258618.=0A=0Adiff -Naur maint/hints/gnu.sh maint-patched/hints/=
gnu.sh=0A--- maint/hints/gnu.sh	2004-02-27 07:31:47.000000000 +1100=0A+++ m=
aint-patched/hints/gnu.sh	2005-03-10 22:46:11.000000000 +1100=0A@@ -18,6 +1=
8,9 @@=0A # Flags needed by programs that use dynamic linking.=0A ccdlflags=
=3D'-Wl,-E'=0A =0A+# Debian bug #258618=0A+ccflags=3D'-D_GNU_SOURCE'=0A+=0A=
 # The following routines are only available as stubs in GNU libc.=0A # XXX=
 remove this once metaconf detects the GNU libc stubs.=0A d_msgctl=3D'undef=
'=0A
--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=04_fix_gnubsd_hints

Add support for Debian GNU/k*BSD

diff -Naur maint/hints/gnukfreebsd.sh maint-patched/hints/gnukfreebsd.sh
--- maint/hints/gnukfreebsd.sh	2005-02-06 02:36:22.000000000 +1100
+++ maint-patched/hints/gnukfreebsd.sh	2005-03-10 22:32:03.000000000 +1100
@@ -1,2 +1,10 @@
 #! /bin/sh
+
+# Support for Debian GNU/kFreeBSD (kfreebsd-gnu)
+# A port of the Debian GNU system using the FreeBSD kernel.
+
 . ./hints/linux.sh
+
+# Configure sets these where $osname = linux
+ccdlflags='-Wl,-E'
+lddlflags='-shared'
diff -Naur maint/hints/gnuknetbsd.sh maint-patched/hints/gnuknetbsd.sh
--- maint/hints/gnuknetbsd.sh	2005-02-06 02:36:22.000000000 +1100
+++ maint-patched/hints/gnuknetbsd.sh	2005-03-10 22:32:44.000000000 +1100
@@ -1,2 +1,10 @@
 #! /bin/sh
+
+# Support for Debian GNU/NetBSD (netbsd-i386 and netbsd-alpha)
+# A port of the Debian GNU system using the NetBSD kernel.
+
 . ./hints/linux.sh
+
+# Configure sets these where $osname = linux
+ccdlflags='-Wl,-E'
+lddlflags='-shared'

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=06_fix_perl_synopsis

As reported in http://bugs.debian.org/278323 , the TOC in perl.pod
should probably not be in the synopsis.

diff -Naur maint/pod/perl.pod maint-patched/pod/perl.pod
--- maint/pod/perl.pod	2004-12-01 02:44:13.000000000 +1100
+++ maint-patched/pod/perl.pod	2005-03-10 22:38:05.000000000 +1100
@@ -12,6 +12,38 @@
     S<[ B<-i>[I<extension>] ]> S<[ B<-e> I<'command'> ] 
     [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
 
+=head1 DESCRIPTION
+
+Perl is a language optimized for scanning arbitrary
+text files, extracting information from those text files, and printing
+reports based on that information.  It's also a good language for many
+system management tasks.  The language is intended to be practical
+(easy to use, efficient, complete) rather than beautiful (tiny,
+elegant, minimal).
+
+Perl combines (in the author's opinion, anyway) some of the best
+features of C, B<sed>, B<awk>, and B<sh>, so people familiar with
+those languages should have little difficulty with it.  (Language
+historians will also note some vestiges of B<csh>, Pascal, and even
+BASIC-PLUS.)  Expression syntax corresponds closely to C
+expression syntax.  Unlike most Unix utilities, Perl does not
+arbitrarily limit the size of your data--if you've got the memory,
+Perl can slurp in your whole file as a single string.  Recursion is of
+unlimited depth.  And the tables used by hashes (sometimes called
+"associative arrays") grow as necessary to prevent degraded
+performance.  Perl can use sophisticated pattern matching techniques to
+scan large amounts of data quickly.  Although optimized for
+scanning text, Perl can also deal with binary data, and can make dbm
+files look like hashes.  Setuid Perl scripts are safer than C programs
+through a dataflow tracing mechanism that prevents many stupid
+security holes.
+
+If you have a problem that would ordinarily use B<sed> or B<awk> or
+B<sh>, but it exceeds their capabilities or must run a little faster,
+and you don't want to write the silly thing in C, then Perl may be for
+you.  There are also translators to turn your B<sed> and B<awk>
+scripts into Perl scripts.
+
 If you're new to Perl, you should start with L<perlintro>, which is a 
 general intro for beginners and provides some background to help you
 navigate the rest of Perl's extensive documentation.
@@ -225,38 +257,6 @@
 sure where you should look for help, try the B<-w> switch first.  It
 will often point out exactly where the trouble is.
 
-=head1 DESCRIPTION
-
-Perl is a language optimized for scanning arbitrary
-text files, extracting information from those text files, and printing
-reports based on that information.  It's also a good language for many
-system management tasks.  The language is intended to be practical
-(easy to use, efficient, complete) rather than beautiful (tiny,
-elegant, minimal).
-
-Perl combines (in the author's opinion, anyway) some of the best
-features of C, B<sed>, B<awk>, and B<sh>, so people familiar with
-those languages should have little difficulty with it.  (Language
-historians will also note some vestiges of B<csh>, Pascal, and even
-BASIC-PLUS.)  Expression syntax corresponds closely to C
-expression syntax.  Unlike most Unix utilities, Perl does not
-arbitrarily limit the size of your data--if you've got the memory,
-Perl can slurp in your whole file as a single string.  Recursion is of
-unlimited depth.  And the tables used by hashes (sometimes called
-"associative arrays") grow as necessary to prevent degraded
-performance.  Perl can use sophisticated pattern matching techniques to
-scan large amounts of data quickly.  Although optimized for
-scanning text, Perl can also deal with binary data, and can make dbm
-files look like hashes.  Setuid Perl scripts are safer than C programs
-through a dataflow tracing mechanism that prevents many stupid
-security holes.
-
-If you have a problem that would ordinarily use B<sed> or B<awk> or
-B<sh>, but it exceeds their capabilities or must run a little faster,
-and you don't want to write the silly thing in C, then Perl may be for
-you.  There are also translators to turn your B<sed> and B<awk>
-scripts into Perl scripts.
-
 But wait, there's more...
 
 Begun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=10_fix_file_path

SECURITY [CAN-2005-0448]:

Rewrite File::Path::rmtree to avoid race condition which allows an
attacker with write permission on directories in the tree being
removed to make files setuid or to remove arbitrary files (see
http://bugs.debian.org/286905 and http://bugs.debian.org/286922).

diff -Naur maint/lib/File/Path.pm maint-patched/lib/File/Path.pm
--- maint/lib/File/Path.pm	2003-08-14 16:52:38.000000000 +1000
+++ maint-patched/lib/File/Path.pm	2005-03-10 23:54:51.000000000 +1100
@@ -72,27 +72,17 @@
 
 =item *
 
-a boolean value, which if TRUE will cause C<rmtree> to
-skip any files to which you do not have delete access
-(if running under VMS) or write access (if running
-under another OS).  This will change in the future when
-a criterion for 'delete permission' under OSs other
-than VMS is settled.  (defaults to FALSE)
+a boolean value, which if FALSE (the default for non-root users) will
+cause C<rmtree> to adjust the mode of directories (if required) prior
+to attempting to remove the contents.  Note that on interruption or
+failure of C<rmtree>, directories may be left with more permissive
+modes for the owner.
 
 =back
 
 It returns the number of files successfully deleted.  Symlinks are
 simply deleted and not followed.
 
-B<NOTE:> If the third parameter is not TRUE, C<rmtree> is B<unsecure>
-in the face of failure or interruption.  Files and directories which
-were not deleted may be left with permissions reset to allow world
-read and write access.  Note also that the occurrence of errors in
-rmtree can be determined I<only> by trapping diagnostic messages
-using C<$SIG{__WARN__}>; it is not apparent from the return value.
-Therefore, you must be extremely careful about using C<rmtree($foo,$bar,0)>
-in situations where security is an issue.
-
 =head1 DIAGNOSTICS
 
 =over 4
@@ -118,6 +108,7 @@
 use Exporter ();
 use strict;
 use warnings;
+use Cwd 'getcwd';
 
 our $VERSION = "1.06";
 our @ISA = qw( Exporter );
@@ -166,111 +157,129 @@
     @created;
 }
 
-sub rmtree {
-    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}) {
-    	if ($Is_MacOS) {
-	    $root = ":$root" if $root !~ /:/;
-	    $root =~ s#([^:])\z#$1:#;
-	} else {
-	    $root =~ s#/\z##;
+sub _rmtree;
+sub _rmtree
+{
+    my ($path, $prefix, $up, $up_dev, $up_ino, $verbose, $safe) = @_;
+
+    my ($dev, $ino) = lstat $path or return 0;
+    unless (-d _)
+    {
+	print "unlink $prefix$path\n" if $verbose;
+	unless (unlink $path)
+	{
+	    carp "Can't remove file $prefix$path ($!)";
+	    return 0;
 	}
-	(undef, undef, my $rp) = lstat $root or next;
-	$rp &= 07777;	# don't forget setuid, setgid, sticky bits
-	if ( -d _ ) {
-	    # notabene: 0777 is for making readable in the first place,
-	    # it's also intended to change it to writable in case we have
-	    # to recurse in which case we are better than rm -rf for 
-	    # subtrees with strange permissions
-	    chmod(0777, ($Is_VMS ? VMS::Filespec::fileify($root) : $root))
-	      or carp "Can't make directory $root read+writeable: $!"
-		unless $safe;
-
-	    if (opendir my $d, $root) {
-		no strict 'refs';
-		if (!defined ${"\cTAINT"} or ${"\cTAINT"}) {
-		    # Blindly untaint dir names
-		    @files = map { /^(.*)$/s ; $1 } readdir $d;
-		} else {
-		    @files = readdir $d;
-		}
-		closedir $d;
-	    }
-	    else {
-	        carp "Can't read $root: $!";
-		@files = ();
-	    }
 
-	    # Deleting large numbers of files from VMS Files-11 filesystems
-	    # is faster if done in reverse ASCIIbetical order 
-	    @files = reverse @files if $Is_VMS;
-	    ($root = VMS::Filespec::unixify($root)) =~ s#\.dir\z## if $Is_VMS;
-	    if ($Is_MacOS) {
-		@files = map("$root$_", @files);
-	    } else {
-		@files = map("$root/$_", grep $_!~/^\.{1,2}\z/s,@files);
-	    }
-	    $count += rmtree(\@files,$verbose,$safe);
-	    if ($safe &&
-		($Is_VMS ? !&VMS::Filespec::candelete($root) : !-w $root)) {
-		print "skipped $root\n" if $verbose;
-		next;
-	    }
-	    chmod 0777, $root
-	      or carp "Can't make directory $root writeable: $!"
-		if $force_writeable;
-	    print "rmdir $root\n" if $verbose;
-	    if (rmdir $root) {
-		++$count;
-	    }
-	    else {
-		carp "Can't remove directory $root: $!";
-		chmod($rp, ($Is_VMS ? VMS::Filespec::fileify($root) : $root))
-		    or carp("and can't restore permissions to "
-		            . sprintf("0%o",$rp) . "\n");
-	    }
-	}
-	else { 
-	    if ($safe &&
-		($Is_VMS ? !&VMS::Filespec::candelete($root)
-		         : !(-l $root || -w $root)))
-	    {
-		print "skipped $root\n" if $verbose;
-		next;
-	    }
-	    chmod 0666, $root
-	      or carp "Can't make file $root writeable: $!"
-		if $force_writeable;
-	    print "unlink $root\n" if $verbose;
-	    # delete all versions under VMS
-	    for (;;) {
-		unless (unlink $root) {
-		    carp "Can't unlink file $root: $!";
-		    if ($force_writeable) {
-			chmod $rp, $root
-			    or carp("and can't restore permissions to "
-			            . sprintf("0%o",$rp) . "\n");
-		    }
-		    last;
-		}
-		++$count;
-		last unless $Is_VMS && lstat $root;
-	    }
+	return 1;
+    }
+
+    unless (chdir $path)
+    {
+	carp "Can't chdir to $prefix$path ($!)";
+	return 0;
+    }
+
+    # avoid a race condition where a directory may be replaced by a
+    # symlink between the lstat and the chdir
+    my ($new_dev, $new_ino, $perm) = stat '.';
+    unless ("$new_dev:$new_ino" eq "$dev:$ino")
+    {
+	croak "Directory $prefix$path changed before chdir, aborting";
+    }
+
+    $perm &= 07777;
+    my $nperm = $perm | 0700;
+    unless ($safe or $nperm == $perm or chmod $nperm, '.')
+    {
+	carp "Can't make directory $prefix$path read+writeable ($!)";
+	$nperm = $perm;
+    }
+
+    my $count = 0;
+    if (opendir my $dir, '.')
+    {
+	my $entry;
+	while (defined ($entry = readdir $dir))
+	{
+	    next if $entry =~ /^\.\.?$/;
+	    $entry =~ /^(.*)$/s; $entry = $1; # untaint
+	    $count += _rmtree $entry, "$prefix$path/", '..', $dev, $ino,
+		$verbose, $safe;
 	}
+
+	closedir $dir;
+    }
+
+    # restore directory permissions if required (in case the rmdir
+    # below fails) now, while we're still in the directory and may do
+    # so without a race via '.'
+    unless ($nperm == $perm or chmod $perm, '.')
+    {
+	carp "Can't restore permissions on directory $prefix$path ($!)";
+    }
+
+    # don't leave the caller in an unexpected directory
+    unless (chdir $up)
+    {
+	croak "Can't return to $up from $prefix$path ($!)";
+    }
+
+    # ensure that a chdir ..  didn't take us somewhere other than
+    # where we expected (see CVE-2002-0435)
+    unless (($new_dev, $new_ino) = stat '.'
+	and "$new_dev:$new_ino" eq "$up_dev:$up_ino")
+    {
+	croak "Previous directory $up changed since entering $prefix$path";
+    }
+
+    print "rmdir $prefix$path\n" if $verbose;
+    if (rmdir $path)
+    {
+	$count++;
+    }
+    else
+    {
+	carp "Can't remove directory $prefix$path ($!)";
+    }
+
+    return $count;
+}
+
+sub rmtree
+{
+    my ($p, $verbose, $safe) = @_;
+    $p = [] unless defined $p and length $p;
+    $p = [ $p ] unless ref $p;
+    my @paths = grep defined && length, @$p;
+
+    # default to "unsafe" for non-root (will chmod dirs)
+    $safe = $> ? 0 : 1 unless defined $safe;
+
+    unless (@paths)
+    {
+	carp "No root path(s) specified";
+	return;
+    }
+
+    my $oldpwd = getcwd or do {
+	carp "Can't fetch initial working directory";
+	return;
+    };
+
+    my ($dev, $ino) = stat '.' or do {
+	carp "Can't stat initial working directory";
+	return;
+    };
+
+    # untaint
+    for ($oldpwd) { /^(.*)$/s; $_ = $1 }
+
+    my $count = 0;
+    for my $path (@paths)
+    {
+	$count += _rmtree $path, '', $oldpwd, $dev, $ino, $verbose, $safe;
     }
 
     $count;

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=14_fix_close

2004-11-30  Jim Meyering  <jim@meyering.net>

	* doio.c (Perl_io_close): Make the return value depend not only on the
	success of the close itself, but also on whether the output stream had
	a previous error.

diff -Naur maint/doio.c maint-patched/doio.c
--- maint/doio.c	2005-01-20 07:12:54.000000000 +1100
+++ maint-patched/doio.c	2005-03-10 22:56:06.000000000 +1100
@@ -1019,11 +1019,14 @@
 	    retval = TRUE;
 	else {
 	    if (IoOFP(io) && IoOFP(io) != IoIFP(io)) {		/* a socket */
-		retval = (PerlIO_close(IoOFP(io)) != EOF);
+		bool prev_err = PerlIO_error(IoOFP(io));
+		retval = (PerlIO_close(IoOFP(io)) != EOF && !prev_err);
 		PerlIO_close(IoIFP(io));	/* clear stdio, fd already closed */
 	    }
-	    else
-		retval = (PerlIO_close(IoIFP(io)) != EOF);
+	    else {
+		bool prev_err = PerlIO_error(IoIFP(io));
+		retval = (PerlIO_close(IoIFP(io)) != EOF && !prev_err);
+	    }
 	}
 	IoOFP(io) = IoIFP(io) = Nullfp;
     }

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=15_fix_verbatim_pod_dash

Escape dashes in verbatim text to have groff render them as-is rather
than as \x{2010}.

diff -Naur maint/lib/Pod/Man.pm maint-patched/lib/Pod/Man.pm
--- maint/lib/Pod/Man.pm	2003-03-31 21:52:31.000000000 +1000
+++ maint-patched/lib/Pod/Man.pm	2005-03-10 22:58:21.000000000 +1100
@@ -517,6 +517,7 @@
     my $lines = tr/\n/\n/;
     1 while s/^(.*?)(\t+)/$1 . ' ' x (length ($2) * 8 - length ($1) % 8)/me;
     s/\\/\\e/g;
+    s/-/\\-/g;
     s/^(\s*\S)/'\&' . $1/gme;
     $self->makespace;
     $self->output (".Vb $lines\n$_.Ve\n");
diff -Naur maint/lib/Pod/t/basic.man maint-patched/lib/Pod/t/basic.man
--- maint/lib/Pod/t/basic.man	2002-07-20 09:49:51.000000000 +1000
+++ maint-patched/lib/Pod/t/basic.man	2005-03-10 22:58:21.000000000 +1100
@@ -332,7 +332,7 @@
 .PP
 .Vb 2
 \& This is.  And this:    is an internal tab.  It should be:
-\&                    |--| <= lined up with that.
+\&                    |\-\-| <= lined up with that.
 .Ve
 .PP
 (Tricky, but tabs should be expanded before the translator starts in on

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=17_fix_net_nntp

Fix precedence.

diff -Naur maint/lib/Net/NNTP.pm maint-patched/lib/Net/NNTP.pm
--- maint/lib/Net/NNTP.pm	2004-05-07 00:01:07.000000000 +1000
+++ maint-patched/lib/Net/NNTP.pm	2005-03-10 23:01:28.000000000 +1100
@@ -120,7 +120,7 @@
  my $nntp = shift;
  my @fh;
 
- @fh = (pop) if @_ == 2 || (@_ && ref($_[0]) || ref(\$_[0]) eq 'GLOB');
+ @fh = (pop) if @_ == 2 || (@_ && (ref($_[0]) || ref(\$_[0]) eq 'GLOB'));
 
  $nntp->_ARTICLE(@_)
     ? $nntp->read_until_dot(@fh)

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=18_fix_devel_dprof

Refer to executable as `perl' rather than `perl5'.

diff -Naur maint/ext/Devel/DProf/DProf.pm maint-patched/ext/Devel/DProf/DProf.pm
--- maint/ext/Devel/DProf/DProf.pm	2003-08-14 16:52:38.000000000 +1000
+++ maint-patched/ext/Devel/DProf/DProf.pm	2005-03-10 23:16:16.000000000 +1100
@@ -6,7 +6,7 @@
 
 =head1 SYNOPSIS
 
-	perl5 -d:DProf test.pl
+	perl -d:DProf test.pl
 
 =head1 DESCRIPTION
 
@@ -21,7 +21,7 @@
 switch.  The profiler uses the debugging hooks.  So to profile script
 F<test.pl> the following command should be used:
 
-	perl5 -d:DProf test.pl
+	perl -d:DProf test.pl
 
 When the script terminates (or when the output buffer is filled) the
 profiler will dump the profile information to a file called

--qDbXVdCdHGoSgWSk
Content-Type: text/x-perl; charset=us-ascii
Content-Disposition: attachment; filename="19_fix_getopts.pl"

Remove a spurious undefined warning when using getopts.pl with -w.

diff -Naur maint/lib/getopts.pl maint-patched/lib/getopts.pl
--- maint/lib/getopts.pl	2002-07-20 09:49:58.000000000 +1000
+++ maint-patched/lib/getopts.pl	2005-03-10 23:21:37.000000000 +1100
@@ -31,7 +31,7 @@
 				}
 				eval "
 				push(\@opt_$first, \$rest);
-				if(\$opt_$first eq '') {
+				if (!defined \$opt_$first or \$opt_$first eq '') {
 					\$opt_$first = \$rest;
 				}
 				else {

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=20_fix_a2p_manpage

Normalise case of OPTIONS section.
Place optional filename in brackets.

diff -Naur maint/x2p/a2p.pod maint-patched/x2p/a2p.pod
--- maint/x2p/a2p.pod	2002-07-20 09:50:15.000000000 +1000
+++ maint-patched/x2p/a2p.pod	2005-03-10 23:22:51.000000000 +1100
@@ -4,7 +4,7 @@
 
 =head1 SYNOPSIS
 
-B<a2p [options] filename>
+B<a2p> [I<options>] [I<filename>]
 
 =head1 DESCRIPTION
 
@@ -12,7 +12,7 @@
 standard input) and produces a comparable I<perl> script on the
 standard output.
 
-=head2 Options
+=head2 OPTIONS
 
 Options include:
 

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=21_fix_perlreref_octal

8 is not an octal digit.

diff -Naur maint/pod/perlreref.pod maint-patched/pod/perlreref.pod
--- maint/pod/perlreref.pod	2003-08-13 07:19:48.000000000 +1000
+++ maint-patched/pod/perlreref.pod	2005-03-10 23:45:08.000000000 +1100
@@ -78,7 +78,7 @@
    \n       Newline
    \r       Carriage return
    \t       Tab
-   \038     Any octal ASCII value
+   \037     Any octal ASCII value
    \x7f     Any hexadecimal ASCII value
    \x{263a} A wide hexadecimal value
    \cx      Control-x

--qDbXVdCdHGoSgWSk--
0
bod
3/10/2005 2:06:00 PM
perl.perl5.porters 48287 articles. 1 followers. Follow

2 Replies
937 Views

Similar Articles

[PageSpeed] 58
Get it on Google Play
Get it on Apple App Store

Brendan O'Dea wrote:
> Attached are the patches to Debian's 5.8.4 package not currently covered
> by my latest rsync of perl-5.8.x.  The patches have been re-worked to
> apply cleanly to that branch, but all should be applicable to
> perl-current as well.

00_fix_instmodsh_doc
    Already done in blead (and in CPAN version of MakeMaker).
03_fix_gnu.sh and 04_fix_gnubsd_hints
    Thanks, applied as 24016, 24017
06_fix_perl_synopsis
    I think I still don't agree.
10_fix_file_path
    I'll look at it separately.
14_fix_close
    Thanks, applied as 24022
15_fix_verbatim_pod_dash
    Technically this should go in the podlators,
    http://search.cpan.org/dist/podlators/ , and I'm just
    noticing that they aren't up to date in blead.
17_fix_net_nntp
    Same remarks, with http://search.cpan.org/dist/libnet/
    I'll update blead and forward patches
18_fix_devel_dprof
    Thanks, applied as 24018
19_fix_getopts.pl
    Thanks, applied as 24019
20_fix_a2p_manpage
    Thanks, applied as 24020
21_fix_perlreref_octal
    Thanks, applied as 24021
0
rgarciasuarez
3/10/2005 6:30:17 PM
On Thu, Mar 10, 2005 at 07:30:17PM +0100, Rafael Garcia-Suarez wrote:
>Brendan O'Dea wrote:
>> Attached are the patches to Debian's 5.8.4 package not currently covered
>> by my latest rsync of perl-5.8.x.  The patches have been re-worked to
>> apply cleanly to that branch, but all should be applicable to
>> perl-current as well.

>06_fix_perl_synopsis
>    I think I still don't agree.

Sorry, just dumped anything which wasn't covered in maint, forgot that
you'd bounced this previously, I've made a note not to resubmit.

>10_fix_file_path
>    I'll look at it separately.

OK.  As noted while this should be fine for POSIX systems, there are
special cases in the original code for $Is_MacOS (related to / vs : 
path seperators) and for $Is_VMS (deleting file revisions and some .dir
suffix weirdness) which aren't handled by the rewrite.

Since I have have neither experience with, or access to either of these
platforms I was kind of hoping that some kind, interested soul would
step forward to assist.

>15_fix_verbatim_pod_dash
>    Technically this should go in the podlators,
>    http://search.cpan.org/dist/podlators/ , and I'm just
>    noticing that they aren't up to date in blead.

OK, will send this one to the module maintainer directly.

--bod
0
bod
3/23/2005 9:50:50 AM
Reply:

Similar Artilces:

Patches, patches, patches...
To forestall potential incidents of Warnock's Dillemma... I'm about to apply a whole heap 'o patches to Parrot. (With appropriate [APPLIED] responses, I hope) If, at the end of the day, I have *not* applied or commented on a patch you've sent, it means I've Officially Missed It, so give another try. Sorry 'bout this. Too much mail in the mailbox, and going back in time is tricky, as it can miss subsequent discussions on patches 'n stuff. -- Dan --------------------------------------"it's like th...

Patches, patches, patches... #2
OK, this is advance warning that I'm about to be reposting a bunch of patches of mine which appear to have succumbed to Warnock's Dilemma. The first three should be uncontroversial: there's a documentation fix-up for core.ops, and new tests for strings and stacks. The last one is rather larger, and consists of a greatly expanded set of tests for PerlString's, plus a bunch of bug-fixes. I'd be grateful if Jeff or Dan could take a look at this, as I have the feeling that a lot of the scalar PMCs are going to need similar fixes. Simon ...

[PATCH] Patch to patch for callbacks in core
I should have tested this better before submitting it. This patch is to Perl 11722 after applying my previous patch. Now callbacks will actually work. :-) - D <dmlloyd@tds.net> --- mg.c-old Tue Aug 21 13:26:52 2001 +++ perl-devel/mg.c Tue Aug 21 15:09:16 2001 @@ -1068,7 +1068,18 @@ void Perl_despatch_signals(pTHX) { - PL_event_pending = 0; + if (PL_callback_head != NULL) { + CALLBACK *cur, *next; + + for (cur = PL_callback_head; cur != NULL; cur = next) { + next = cur->next; + (*cur->callback)(cur->data); + ...

[PATCH] 5.8.8: Debian patches
--G4iJoqBmSsgzjUCe Content-Type: text/plain; charset=us-ascii Content-Disposition: inline The following relevant patches are applied to the Debian 5.8.8 package: 01_fix_insecure_tempfiles Remainder of the Trustix patch for CAN-2004-0976, fixes insecure use of /tmp in lib/Memoize/t/tie.t, tie_gdbm.t, tie_ndbm.t, tie_sdbm.t, tie_storable.t. Also fix a quote typo in utils/c2ph.PL (NOTE: apply this if nothing else from the patch; bugfix). 02_fix_verbatim_pod_dash Escape dashes in verbatim text to have groff render them as-is rather than as \x{201...

[PATCH] more pod patches
Yet more pod linting, this time on .pm files. I've touched things without fear or favour mostly - I think probably a few of these changes affect things that are also maintained outside the core. diff -urN perl-current.orig/configpm perl-current/configpm --- perl-current.orig/configpm Thu Mar 15 20:33:42 2001 +++ perl-current/configpm Thu Mar 15 21:10:59 2001 @@ -418,7 +418,7 @@ print CONFIG <<EOF; =head2 $c -=over +=over 4 EOF $text = 1; diff -urN perl-current.orig/ext/B/B/Bytecode.pm perl-current/ext/B/B/Bytecode.pm --- perl-current.orig/ext/B/B/B...

[PATCH] installperl patch
------=_Part_72778_11907270.1186149310146 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline The attached patch modifies installperl as follows: 1. Don't install lib/CGI/eg/*. (These files aren't installed by the CPAN version of CGI either.) 2. Don't install lib/ExtUtils/NOTES, and lib/ExtUtils/PATCHING. (These files aren't installed by the CPAN version of ExtUtils::MakeMaker either.) ------=_Part_72778_11907270.1186149310146 Content-Type: application/octet-stream; name=installperl.patch Content-Transf...

BlackIce Patched or Not Patched?
ISS recently released a patch for the much published denial of server venerability in BlackIce Defender. Yet, eEye referred to the venerability as a buffer overflow. My question is ... does the newly released patch cover both? The ISS site does not refer to a buffer overflow. Does that mean that even after installing the patch BlackIce Defender is open to a buffer overflow? (not good if so) I've taken BlackIce offline until I am certain that it is fully patched. Thanks in advance. Tom Correction: Denial of service venerability as opposed to denial of server. (grin) ...

[PATCH] cygwin070patches_4.patch
--------------030804070801060907040802 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit My latest patch against the cygwin070patches branch r30596. * Finished implementation of the makefile expansion - "perl-style" * Changed all relevant makefile templates. make fulltest and make codetest has the same few mt-thread and resume errors as always. A new idea: =========== #IF(darwin): #ALSO:# MACOSX_DEPLOYMENT_TARGET must be defined for OS X #ALSO:export MACOSX_DEPLOYMENT_TARGET := @osx_version@ The POD for this change: ...

PATCH: clarify where to patch against
--envbJBWh7q8WU6mo Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Talking about Perl 5 git repo tonight, some questions came up about where development really happens. This patch is a bit of clarification about where/why patches go to blead/maint. -- rjbs --envbJBWh7q8WU6mo Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-very-minor-tweaks-to-description-of-maint-blead.patch" From 1b7ad6bc0c93abd2d9fad847e8449824e529ba24 Mon Sep 17 00:00:00 2001 From: Ricardo SIGNES <rjbs@cpan.org> Date:...

[PATCH] todo patch
--- perltodo.pod.old Wed May 16 17:51:45 2001 +++ perltodo.pod Mon May 28 16:56:29 2001 @@ -68,6 +68,10 @@ Artur Bergman's C<iThreads> module is a start on this, but needs to be more mature. +=head2 make perl_clone optionally clone ops + +So at pseduforking, mod_perl , iThreads and nvi will work properly (not as efficient) until regex engine is fixed + =head2 Work out exit/die semantics for threads =head2 Typed lexicals for compiler On Mon 28 May 2001 17:03, Artur Bergman <artur@contiller.se> wrote: > --- perltodo.pod.old Wed May 16 17:5...

Microsoft patching its patches
While we're on the topic of zombies, security and patches..... George. ------------------------------------------------------------------------ "Exchange security patch needs patching" The patch needs a patch. The security update Microsoft rolled out last week to caulk a hole in Exchange 2000 server actually needs a patch itself. MS is also broadening its original Exchange 2000 security bulletin to include Exchange 5.5 Server deployments for the first time. Microsoft says if you've deployed Outlook Web Access, you need to patch ASAP. SOURCE: ENT Magazine http...

[PATCH] patching for sunos
Hi coders, greetings from the stone age: This is perl, v5.9.4 built for sun4-sunos-stdio SunOS Release 4.1.3 (GENERIC) #3: Mon Jul 27 16:44:16 PDT 1992 $ uname -a SunOS xxx 4.1.3 3 sun4m If anyone is interested in patches for SunOS yet, I have some. Some are harmless, some may not be optimal. Help/hints/tips are always nice and appreciated. 1. SunOS realloc() does not like NULL pointers as parameters. (buf?realloc((buf), (size)):malloc((size))) 2. There is no strtoul(), alas. Some older code correctly uses the Strtoul() macro (capital S). Newer additions don't...

[PATCH] More Build patches
Two patches inline... A small change to Makefile.in so that 'make test' doesn't try to run without an interpreter or missing assembler libraries. Index: Makefile.in =================================================================== RCS file: /home/perlcvs/parrot/Makefile.in,v retrieving revision 1.24 diff -u -r1.24 Makefile.in --- Makefile.in 2001/10/14 10:58:19 1.24 +++ Makefile.in 2001/10/15 14:42:12 @@ -106,7 +106,7 @@ cd t; make clean cd docs; make clean -test: .test_dummy +test: $(TEST_PROG) assemble.pl .test_dummy .test_dummy: ...

[PATCH] perlhack on what to patch
--- pod/perlhack.pod.orig 2006-07-12 22:52:14.000000000 +0300 +++ pod/perlhack.pod 2006-07-12 23:05:40.000000000 +0300 @@ -598,14 +598,22 @@ =head2 Submitting patches but context diffs are accepted. Do not send RCS-style diffs or diffs without context lines. More information is given in the I<Porting/patching.pod> file in the Perl source distribution. Please -patch against the latest B<development> version (e.g., if you're -fixing a bug in the 5.005 track, patch against the latest 5.005_5x -version). Only patches that survive the heat of the development ...

Web resources about - [PATCH] Debian patches - perl.perl5.porters

Patch Barracks - Wikipedia, the free encyclopedia
Patch Barracks was renamed from the German Kurmärker Kaserne in 1952; it was originally built for use by the German Army Wehrmacht in 1936/37. ...

Bradenton, FL Patch - News, Sports, Events, Businesses & Deals
Comprehensive and trusted local coverage of Bradenton, FL. Featuring news and events, business listings, discussions, announcements, photos and ...

Manassas, VA Patch - News, Sports, Events, Businesses & Deals
... your tip here and it will be sent straight to Jamie M. Rogers, James Cullum, Raytevia Evans, Greg Hambrick, and Todd Richissin,Manassas Patch's ...

Peachtree Corners, GA Patch - News, Sports, Events, Businesses & Deals
Comprehensive and trusted local coverage of Peachtree Corners and Berkeley Lake, GA. Featuring news and events, business listings, discussions, ...

Hey all. Some of you may learn in the... - Somerville Patch - Facebook
Hey all. Some of you may learn in the next hours and days that a number of colleagues and I were just laid off by Patch. That means I will no ...

ISG: Playdom Buys Green Patch and Trippert Labs — On the Way to IPO?
... ones on Facebook, has confirmed a couple purchases we’ve been hearing rumors about recently. It has bought Facebook game developer Green Patch, ...

Capitola Patch (@CapitolaPatch) on Twitter
Log in Sign up You are on Twitter Mobile because you are using an old version of Internet Explorer. Learn more here Capitola Patch @ CapitolaPatch ...

Just Cause 3 devs say PC patch will take “a little bit of time”
... and publisher Square Enix have heard those concerns loud and clear, but they say they'll "need a little bit of time" to roll out a patch that ...

Patch Tuesday December 2015: The most-important patches
There we are: the last Patch Tuesday of 2015. It turns out to be about average, with maybe a bit more severity in the bulletins than usually. ...

Fallout 4 gets first official PC patch, coming to PS4 and Xbox One this week
Bug fixes, new features, and more arrive with new patch; consoles get it later this week.

Resources last updated: 12/16/2015 9:52:19 PM