summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/debsystem.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2018-12-10 16:52:59 +0100
committerJulian Andres Klode <julian.klode@canonical.com>2018-12-10 17:31:24 +0100
commit806e94dcd8dbdf7bf1909657fd4331cfe17b4ab0 (patch)
tree6c0795c08971f80cd532dd66416b96215d2ae482 /apt-pkg/deb/debsystem.cc
parent37bdbe03d44975951d2518bb9b3d3636081dca6a (diff)
Set PATH=/usr/sbin:/usr/bin:/sbin:/bin when running dpkg
This avoids a lot of problems from local installations of scripting languages and other stuff in /usr/local for which maintainer scripts are not prepared. [v3: Inherit PATH during tests, check overrides work] [v2: Add testing]
Diffstat (limited to 'apt-pkg/deb/debsystem.cc')
-rw-r--r--apt-pkg/deb/debsystem.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc
index 0a9e98d6d..5df6c58a1 100644
--- a/apt-pkg/deb/debsystem.cc
+++ b/apt-pkg/deb/debsystem.cc
@@ -398,6 +398,10 @@ pid_t debSystem::ExecDpkg(std::vector<std::string> const &sArgs, int * const inp
{
setenv("DPKG_FRONTEND_LOCKED", "true", 1);
}
+
+ if (_config->Find("DPkg::Path", "").empty() == false)
+ setenv("PATH", _config->Find("DPkg::Path", "").c_str(), 1);
+
execvp(Args[0], (char**) &Args[0]);
_error->WarningE("dpkg", "Can't execute dpkg!");
_exit(100);