From a68894875ce0d11261882f62b2aa28a6e3eed673 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 15 Jul 2017 23:15:54 +0100 Subject: [PATCH] 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 --- debian/changelog | 1 + dgit | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 1d912c02..784269c1 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 .. -- diff --git a/dgit b/dgit index 51975965..a68bf19c 100755 --- a/dgit +++ b/dgit @@ -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#^(?:\./+)?\.\./+#) { -- 2.30.2