X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=bin%2FBackupPC_zipCreate;h=8d9ae2719df1ba9142d56c7e23702d1f53d6bc7a;hp=82061aff627eccb288f75ceee494968d48ef067e;hb=d1bfa4d92bec24954f2e7877f6531644bb84e8f3;hpb=546f9691f118c9ea2d164f377994b4a018a60d02 diff --git a/bin/BackupPC_zipCreate b/bin/BackupPC_zipCreate index 82061af..8d9ae27 100755 --- a/bin/BackupPC_zipCreate +++ b/bin/BackupPC_zipCreate @@ -1,4 +1,4 @@ -#!/bin/perl +#!/usr/bin/perl #============================================================= -*-perl-*- # # BackupPC_zipCreate: create a zip archive of an existing dump @@ -21,8 +21,7 @@ # -r pathRemove path prefix that will be replaced with pathAdd # -p pathAdd new path prefix # -c level compression level (default is 0, no compression) -# -e charset charset for encoding file names (default: value of -# $Conf{ClientCharset} when backup was done) +# -e charset charset for encoding file names (default: cp1252) # # The -h, -n and -s options specify which dump is used to generate # the zip archive. The -r and -p options can be used to relocate @@ -34,7 +33,7 @@ # Based on Backup_tarCreate by Craig Barratt # # COPYRIGHT -# Copyright (C) 2002-2003 Craig Barratt and Guillaume Filion +# Copyright (C) 2002-2009 Craig Barratt and Guillaume Filion # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -52,7 +51,7 @@ # #======================================================================== # -# Version 2.1.0, released 20 Jun 2004. +# Version 3.2.0, released 31 Jul 2010. # # See http://backuppc.sourceforge.net. # @@ -94,13 +93,13 @@ usage: $0 [options] files/directories... -r pathRemove path prefix that will be replaced with pathAdd -p pathAdd new path prefix -c level compression level (default is 0, no compression) - -e charset charset for encoding file names (default: value of - \$Conf{ClientCharset} when backup was done) + -e charset charset for encoding file names (default: cp1252) EOF exit(1); } -if ( $opts{h} !~ /^([\w\.\s-]+)$/ ) { +if ( $opts{h} !~ /^([\w\.\s-]+)$/ + || $opts{h} =~ m{(^|/)\.\.(/|$)} ) { print(STDERR "$0: bad host name '$opts{h}'\n"); exit(1); } @@ -136,12 +135,12 @@ if ( $i >= @Backups ) { exit(1); } -my $Charset = $Backups[$i]{charset}; +my $Charset = "cp1252"; $Charset = $opts{e} if ( $opts{e} ne "" ); my $PathRemove = $1 if ( $opts{r} =~ /(.+)/ ); my $PathAdd = $1 if ( $opts{p} =~ /(.+)/ ); -if ( $opts{s} !~ /^([\w\s.\/$(){}[\]-]+)$/ ) { +if ( $opts{s} =~ m{(^|/)\.\.(/|$)} ) { print(STDERR "$0: bad share name '$opts{s}'\n"); exit(1); } @@ -170,6 +169,7 @@ sub archiveWrite $ErrorCnt++; return; } + $dir = "/" if ( $dir eq "." ); $view->find($Num, $ShareName, $dir, 0, \&ZipWriteFile, $zipfh, $zipPathOverride); }