diff options
-rw-r--r-- | apt-pkg/sourcelist.cc | 4 | ||||
-rwxr-xr-x | test/integration/test-apt-get-build-dep-file | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc index 0da687895..df2e0b46d 100644 --- a/apt-pkg/sourcelist.cc +++ b/apt-pkg/sourcelist.cc @@ -619,7 +619,7 @@ bool pkgSourceList::AddVolatileFile(std::string const &File) void pkgSourceList::AddVolatileFiles(CommandLine &CmdL, std::vector<std::string> * const VolatileCmdL)/*{{{*/ { std::remove_if(CmdL.FileList + 1, CmdL.FileList + 1 + CmdL.FileSize(), [&](char const * const I) { - if (I != nullptr && (I[0] == '/' || (I[0] == '.' && ((I[1] == '.' && I[2] == '/') || I[1] == '/')))) + if (I != nullptr && (I[0] == '/' || (I[0] == '.' && (I[1] == '\0' || (I[1] == '.' && (I[2] == '\0' || I[2] == '/')) || I[1] == '/')))) { if (AddVolatileFile(I, VolatileCmdL)) ; @@ -633,7 +633,7 @@ void pkgSourceList::AddVolatileFiles(CommandLine &CmdL, std::vector<std::string> void pkgSourceList::AddVolatileFiles(CommandLine &CmdL, std::vector<const char*> * const VolatileCmdL) { std::remove_if(CmdL.FileList + 1, CmdL.FileList + 1 + CmdL.FileSize(), [&](char const * const I) { - if (I != nullptr && (I[0] == '/' || (I[0] == '.' && ((I[1] == '.' && I[2] == '/') || I[1] == '/')))) + if (I != nullptr && (I[0] == '/' || (I[0] == '.' && (I[1] == '\0' || (I[1] == '.' && (I[2] == '\0' || I[2] == '/')) || I[1] == '/')))) { if (AddVolatileFile(I)) { diff --git a/test/integration/test-apt-get-build-dep-file b/test/integration/test-apt-get-build-dep-file index 233aed934..ed850fa40 100755 --- a/test/integration/test-apt-get-build-dep-file +++ b/test/integration/test-apt-get-build-dep-file @@ -141,6 +141,14 @@ cd downloaded testsuccess aptget build-dep --simulate ../foo-1.0 testsuccess aptget build-dep --simulate "$(readlink -f ../foo-1.0)" cd .. +cd foo-1.0 +testsuccess aptget build-dep --simulate './' +testsuccess aptget build-dep --simulate '.' +cd debian +testsuccess aptget build-dep --simulate './../' +testsuccess aptget build-dep --simulate '../' +testsuccess aptget build-dep --simulate '..' +cd ../.. testfailureequal 'E: Must specify at least one package to check builddeps for' aptget build-dep testfailureequal 'E: No architecture information available for armel. See apt.conf(5) APT::Architectures for setup' aptget build-dep --simulate ./foo-1.0 -a armel |