cvs commit: perlfaq perlfaq5.pod perlfaq8.pod

[email protected] (Robert Spier) 7 Feb 2004 04:29:50 -0000
Newsgroups perl.cvs.perlfaq
Message-ID <[email protected]>
cvsuser     04/02/06 20:29:50

  Modified:    .        perlfaq5.pod perlfaq8.pod
  Log:
  Change 22258 by davem@davem-percy on 2004/02/01 17:40:02
  
          Subject: Re: [perl #15063] /tmp issues
          From: Solar Designer <[email protected]>
          Date: Mon, 26 Jan 2004 01:22:18 +0300
          Message-ID: <[email protected]>
  
          Remove insecure usage of /tmp from code and documentation
  
  Revision  Changes    Path
  1.31      +5 -4      perlfaq/perlfaq5.pod
  
  Index: perlfaq5.pod
  ===================================================================
  RCS file: /cvs/public/perlfaq/perlfaq5.pod,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -w -r1.30 -r1.31
  --- perlfaq5.pod	23 Nov 2003 08:07:46 -0000	1.30
  +++ perlfaq5.pod	7 Feb 2004 04:29:50 -0000	1.31
  @@ -1,6 +1,6 @@
   =head1 NAME
   
  -perlfaq5 - Files and Formats ($Revision: 1.30 $, $Date: 2003/11/23 08:07:46 $)
  +perlfaq5 - Files and Formats ($Revision: 1.31 $, $Date: 2004/02/07 04:29:50 $)
   
   =head1 DESCRIPTION
   
  @@ -141,6 +141,7 @@
   	    my $count = 0;
   	    until (defined(fileno(FH)) || $count++ > 100) {
   		$base_name =~ s/-(\d+)$/"-" . (1 + $1)/e;
  +		# O_EXCL is required for security reasons.
   		sysopen(FH, $base_name, O_WRONLY|O_EXCL|O_CREAT);
   	    }
   	    if (defined(fileno(FH))
  @@ -427,8 +428,8 @@
   
   To open a file without blocking, creating if necessary:
   
  -    sysopen(FH, "/tmp/somefile", O_WRONLY|O_NDELAY|O_CREAT)
  -	    or die "can't open /tmp/somefile: $!":
  +    sysopen(FH, "/foo/somefile", O_WRONLY|O_NDELAY|O_CREAT)
  +	    or die "can't open /foo/somefile: $!":
   
   Be warned that neither creation nor deletion of files is guaranteed to
   be an atomic operation over NFS.  That is, two processes might both
  @@ -924,7 +925,7 @@
   If you check L<perlfunc/open>, you'll see that several of the ways
   to call open() should do the trick.  For example:
   
  -    open(LOG, ">>/tmp/logfile");
  +    open(LOG, ">>/foo/logfile");
       open(STDERR, ">&LOG");
   
   Or even with a literal numeric descriptor:
  
  
  
  1.20      +6 -6      perlfaq/perlfaq8.pod
  
  Index: perlfaq8.pod
  ===================================================================
  RCS file: /cvs/public/perlfaq/perlfaq8.pod,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -w -r1.19 -r1.20
  --- perlfaq8.pod	20 Sep 2003 06:36:22 -0000	1.19
  +++ perlfaq8.pod	7 Feb 2004 04:29:50 -0000	1.20
  @@ -1,6 +1,6 @@
   =head1 NAME
   
  -perlfaq8 - System Interaction ($Revision: 1.19 $, $Date: 2003/09/20 06:36:22 $)
  +perlfaq8 - System Interaction ($Revision: 1.20 $, $Date: 2004/02/07 04:29:50 $)
   
   =head1 DESCRIPTION
   
  @@ -749,10 +749,10 @@
       while (<PH>) { }                            #    plus a read
   
   To read both a command's STDOUT and its STDERR separately, it's easiest
  -and safest to redirect them separately to files, and then read from those
  -files when the program is done:
  +to redirect them separately to files, and then read from those files
  +when the program is done:
   
  -    system("program args 1>/tmp/program.stdout 2>/tmp/program.stderr");
  +    system("program args 1>program.stdout 2>program.stderr");
   
   Ordering is important in all these examples.  That's because the shell
   processes file descriptor redirections in strictly left to right order.
  @@ -1063,8 +1063,8 @@
   sysopen():
   
       use Fcntl;
  -    sysopen(FH, "/tmp/somefile", O_WRONLY|O_NDELAY|O_CREAT, 0644)
  -        or die "can't open /tmp/somefile: $!":
  +    sysopen(FH, "/foo/somefile", O_WRONLY|O_NDELAY|O_CREAT, 0644)
  +        or die "can't open /foo/somefile: $!":
   
   =head2 How do I install a module from CPAN?