#
#========================================================================
#
-# Version 2.1.0, released 20 Jun 2004.
+# Version 3.0.0beta2, released 11 Nov 2006.
#
# See http://backuppc.sourceforge.net.
#
package BackupPC::CGI::RestoreFile;
use strict;
+use Encode;
use BackupPC::CGI::Lib qw(:all);
use BackupPC::FileZIO;
use BackupPC::Attrib qw(:all);
use BackupPC::View;
+
sub action
{
restoreFile($In{host}, $In{num}, $In{share}, $In{dir});
my $view = BackupPC::View->new($bpc, $host, \@Backups);
my $a = $view->fileAttrib($num, $share, $dir);
if ( $dir =~ m{(^|/)\.\.(/|$)} || !defined($a) ) {
- ErrorExit("Can't restore bad file ${EscHTML($dir)}");
+ $dir = decode_utf8($dir);
+ ErrorExit("Can't restore bad file ${EscHTML($dir)} ($num, $share)");
}
my $f = BackupPC::FileZIO->open($a->{fullPath}, 0, $a->{compress});
my $data;
}
$f->close;
$linkName =~ s/^\.\///;
- my $share = $1 if ( $dir =~ /^\/?(.*?)\// );
restoreFile($host, $num, $share, $linkName, 1, $dir);
return;
}