Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 153665 - Unzip does not handle deferred symbolic links in NFS filesystem
Summary: Unzip does not handle deferred symbolic links in NFS filesystem
Alias: None
Product: Fedora
Classification: Fedora
Component: unzip
Version: 4
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Ivana Varekova
QA Contact: Ben Levenson
Depends On:
TreeView+ depends on / blocked
Reported: 2005-04-04 20:19 UTC by Aaron Gaudio
Modified: 2007-11-30 22:11 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2005-04-12 14:04:16 UTC

Attachments (Terms of Use)
Test case with 1 deferred and 1 unresolved symlink. (deleted)
2005-04-04 20:19 UTC, Aaron Gaudio
no flags Details

Description Aaron Gaudio 2005-04-04 20:19:24 UTC
Description of problem:
Previous versions of unzip would crash when encountering a symbolic link which
does not resolve (because the target has not been unpacked from the archive
yet). The latest rawhide version doesn't crash, but it does not handle such
symlinks correctly (see expected behavior below).

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Download the attached test case "".
2. Attempt to unzip it to a temporary directory.
Actual results:
foo/b and foo/c are created as empty files with warning "warning:  symbolic link
(foo/c) failed".

Expected results:
foo/b should be a symlink to "../b".
foo/c should be a (broken) symlink to non-existent file "../c".

Additional info:
This works as expected in Solaris unzip (version 5.12).

Note that the symlink has to be extracted before its target (if there is one) to
reproduce this bug. The easiest way to force this is to put the symlink in a

Red Hat bugzilla #134073 touches on this issue. In previous releases of unzip
5.51, unzip would segfault in these scenarios. Now it just creates empty files.

Comment 1 Aaron Gaudio 2005-04-04 20:19:25 UTC
Created attachment 112683 [details]
Test case with 1 deferred and 1 unresolved symlink.

Comment 2 Ivana Varekova 2005-04-05 14:34:24 UTC
I try to reproduce this problem, but I can't reproduce it. My unzip works right.
Can you write me sizes of unpacked files foo/b and foo/c.
Ivana Varekova

Comment 3 Aaron Gaudio 2005-04-06 00:46:30 UTC
You're right... after testing again, this works from a normal filesystem.
However, when I run this from an NFS-mounted filesystem, that's when I get the
error. I confirmed that Solaris's unzip behaves correctly even over NFS. I've
updated the summary appropriately. Example output follows:

$ unzip /tmp/
Archive:  /tmp/
 extracting: b
    linking: foo/b                   warning:  symbolic link (foo/b) failed

    linking: foo/c                   warning:  symbolic link (foo/c) failed

$ ls -lR foo
total 0
-r--------  1 agaudio mc-csp 0 Apr  5 20:42 b
-r--------  1 agaudio mc-csp 0 Apr  5 20:42 c

Comment 4 Ivana Varekova 2005-04-06 07:50:26 UTC
I try to reproduce your problem on NFS-mounted filesystem, but unzip was right
again. Have you got enough space to create nonempty file?

Comment 5 Aaron Gaudio 2005-04-06 13:47:37 UTC

Thanks for your diligence on this. I've narrowed it down further. The problem
apparently only happens on a Solaris-exported NFS filesystems. There is plenty
of space on the drive. I've tried it with Solaris 8 NFS and Solaris 10 NFS with
no luck. Note that I am able to create symlinks manually using 'ln -s' on such

Comment 6 Ivana Varekova 2005-04-07 08:29:43 UTC
thank you for the bug report. However this bug should be reported
upstream (and fixed by unzip developers).
Can you please report this bug to upstream
You can reproduce this bug so if there will be necessary some other
specifications you can answer it directly.
Thank you.

Note You need to log in before you can comment on or make changes to this bug.