New patchfs script

Adam Byrtek 'alpha' alpha at student.uci.agh.edu.pl
Wed Dec 11 15:14:43 UTC 2002


On Wed, Dec 11, 2002 at 04:42:35PM +0200, Andrew V. Samoilov wrote:
> -    copyout ($ARGV[2], $ARGV[3]);
> +    copyout ($ARGV[2], quotemeta ($ARGV[3]));

The second chunk is invalid.
$ARGV[3] is used only for 'open', and it doesn't need quoting:

bash-2.05b$ perl -we 'open TMP, ">". quotemeta("Q|Q|\\|Q"); print TMP
"xxx\n"; close TMP'
bash-2.05b$ ls Q*
Q\|Q\|\\\|Q

Fixed in attachment.


-- 

  _.|._ |_  _.    : Adam Byrtek, alpha@(irc.pl|debian.org)
 (_|||_)| |(_|    : gg 1802819, pgp 0xB25952C0
     |            : jid alpha.jabberpl.org
-------------- next part --------------
Index: patchfs
===================================================================
RCS file: /cvs/gnome/mc/vfs/extfs/patchfs,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- patchfs	9 Dec 2002 20:16:34 -0000	1.6
+++ patchfs	11 Dec 2002 11:03:26 -0000	1.7
@@ -124,14 +124,15 @@
 
 
 my $tmp;
-$_=`$file $ARGV[1]`;
+my $quoted_name = quotemeta $ARGV[1];
+$_=`$file $quoted_name`;
 if (/bzip/) {
     $tmp=tmpnam();
-    system "$bzcat $ARGV[1] > $tmp";
+    system "$bzcat $quoted_name > $tmp";
     open I, "< $tmp";
 } elsif (/gzip/) {
     $tmp=tmpnam();
-    system "$gzcat $ARGV[1] > $tmp";
+    system "$gzcat $quoted_name > $tmp";
     open I, "< $tmp";
 } else {
     open I, "< $ARGV[1]";


More information about the mc-devel mailing list