diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-07-15 23:15:54 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-07-15 23:16:02 +0100 |
commit | a68894875ce0d11261882f62b2aa28a6e3eed673 (patch) | |
tree | 1f8473670bcb9f80fcf6476117330502a6a31644 | |
parent | 643fe03fd85c430ca77c9a3a59a4d9e6f99e9f7c (diff) |
dgit import: Defend against broken symlinks in ..
Provide a special error message if lstat succeeds but lstat fails.
This is not hypothetical - currently even dgit import ../blah.dsc can
generate this situation !
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rw-r--r-- | debian/changelog | 1 | ||||
-rwxr-xr-x | dgit | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index 1d912c0..784269c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ dgit (3.12~) unstable; urgency=medium * Defend against commit subject lines which would generate patches which look like series files, etc. Involves adding .patch to all generated patch filenames. + * dgit import: Defend against broken symlinks in .. -- @@ -6349,7 +6349,10 @@ END foreach my $fi (@dfi) { my $f = $fi->{Filename}; my $here = "../$f"; - next if lstat $here; + if (lstat $here) { + next if stat $here; + fail "lstat $here works but stat gives $! !"; + } fail "stat $here: $!" unless $! == ENOENT; my $there = $dscfn; if ($dscfn =~ m#^(?:\./+)?\.\./+#) { |