From 00c4dd2e3c7faa169ec2274318e337e9c4fa3840 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Tue, 2 Oct 2012 18:25:22 +0400 Subject: [PATCH] Ticket #2910: enter into symlink to commpressed patch shows empty patch. Signed-off-by: Andrew Borodin --- src/vfs/extfs/helpers/patchfs.in | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/vfs/extfs/helpers/patchfs.in b/src/vfs/extfs/helpers/patchfs.in index 264e8572d..c1c4f9959 100644 --- a/src/vfs/extfs/helpers/patchfs.in +++ b/src/vfs/extfs/helpers/patchfs.in @@ -380,25 +380,31 @@ sub copyin($$$) { or error "Can't write to archive"; } +my $fin = $ARGV[1]; + +# resolve symlink +while (-l $fin) { + $fin = readlink $fin; +} if ($ARGV[0] eq 'list') { - open I, myin($ARGV[1]).'|'; - list ($ARGV[1]); + open I, myin($fin).'|'; + list ($fin); exit 0; } elsif ($ARGV[0] eq 'copyout') { - open I, myin($ARGV[1])."|"; + open I, myin($fin)."|"; copyout ($ARGV[2], $ARGV[3]); exit 0; } elsif ($ARGV[0] eq 'rm') { - open I, myin($ARGV[1])."|"; - rm ($ARGV[1], $ARGV[2]); + open I, myin($fin)."|"; + rm ($fin, $ARGV[2]); exit 0; } elsif ($ARGV[0] eq 'rmdir') { exit 0; } elsif ($ARGV[0] eq 'mkdir') { exit 0; } elsif ($ARGV[0] eq 'copyin') { - copyin ($ARGV[1], $ARGV[2], $ARGV[3]); + copyin ($fin, $ARGV[2], $ARGV[3]); exit 0; } exit 1; -- 2.11.4.GIT