Jens Peter Secher wrote:
> 2009/9/17 Marek Grzybowski <marek.grzybow...@atm.com.pl>:
>> Andrzej Lemieszek (in CC) found few more, and He escaped them, so use rcs 
>> should be safe to:
>>
>> His patch:
>>
> [...]
>> +        my $realfile_esc = &escape_shell_chars ($realfile);
> [...]
>> -               `cp $realfile $compfile`;
>> +               `cp $realfile_esc $compfile_esc`;
> [...]
>> +sub escape_shell_chars
>> +{
>> +    my $arg = shift;
>> +    $arg =~ s/[;<>\*\|`&\$!#\(\)\[\]\{\}:'"\s]/\\$&/g;
>> +    return $arg;
>> +}
> 
> This is not going work.  When $realfile_esc is different from
> $realfile, then it makes no sense to copy the non-existent
> $realfile_esc.  I will go for the solution of rejecting weird file
> names.

You right Jeans, it's no good enought witch "enters",

I also chcked ./bashline.c in bash sources:

 /* characters that need to be quoted when appearing in filenames. */
  rl_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{";        /*}*/

i do some tests, and come up witch this :
$ cat  test.pl
#!/usr/bin/perl
use File::NCopy qw(copy);

# test file name
my $realfile="blablabla \t\n\\\"'@<>=;|&()#\$`?*[!:{";

my $realfile_esc = &escape_shell_chars ($realfile);

sub escape_shell_chars
{
    my $arg = shift;
    $arg =~ s/[']/\'\\$&'/g;
    return "'".$arg."'";
}

print "$realfile\n";
print "$realfile_esc\n";

copy( "test.pl" , $realfile);
print `set -x cp test.pl $realfile_esc`




-- 
Pozdrawiam
   Marek Grzybowski



-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to