X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FAttrib.pm;h=2b4b36a4d472e4da72b34022ea936ca0c2fe899e;hp=ad2bfdc80a4529a78a594b0b58b231ade0219c72;hb=ca593f66fd6c35764bd8997c6338b781330f019c;hpb=9cf3998c4ef71332dea96ff3115daf8b9f722acb;ds=sidebyside diff --git a/lib/BackupPC/Attrib.pm b/lib/BackupPC/Attrib.pm index ad2bfdc..2b4b36a 100644 --- a/lib/BackupPC/Attrib.pm +++ b/lib/BackupPC/Attrib.pm @@ -252,11 +252,18 @@ sub read $fd->read(\$newData, 65536); $data .= $newData; } - ( - @{$a->{files}{$fileName}}{@FldsUnixW}, - @{$a->{files}{$fileName}}{@FldsUnixN}, - $data - ) = unpack("w$nFldsW N$nFldsN a*", $data); + eval { + ( + @{$a->{files}{$fileName}}{@FldsUnixW}, + @{$a->{files}{$fileName}}{@FldsUnixN}, + $data + ) = unpack("w$nFldsW N$nFldsN a*", $data); + }; + if ( $@ ) { + $a->{_errStr} = "unpack: Can't read attributes for $fileName from $file ($@)"; + $fd->close; + return; + } if ( $a->{files}{$fileName}{$FldsUnixN[-1]} eq "" ) { $a->{_errStr} = "Can't read attributes for $fileName" . " from $file";