Bugfix for restore.pl.
[cumulus.git] / restore.pl
index be94078..53b48dc 100755 (executable)
@@ -166,7 +166,7 @@ sub iterate_objects {
         next if $obj eq "";
         if ($obj =~ /^@(\S+)$/) {
             my $indirect = load_ref($1);
-            iterate_objects($callback, $arg, $1, $recursion_level + 1);
+            iterate_objects($callback, $arg, $indirect, $recursion_level + 1);
         } else {
             &$callback($arg, $obj);
         }
@@ -272,8 +272,14 @@ sub process_file {
 
     my $uid = -1;
     my $gid = -1;
-    $uid = $info{user} + 0 if defined $info{user};
-    $gid = $info{group} + 0 if defined $info{group};
+    if (defined $info{user}) {
+        my @items = split /\s/, $info{user};
+        $uid = $items[0] + 0 if exists $items[0];
+    }
+    if (defined $info{group}) {
+        my @items = split /\s/, $info{group};
+        $gid = $items[0] + 0 if exists $items[0];
+    }
     chown $uid, $gid, $dest
         or warn "Unable to change ownership for $dest";