diff options
author | David Kalnischkies <david@kalnischkies.de> | 2017-03-21 09:27:25 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2017-06-26 23:31:15 +0200 |
commit | e250df1a623fd08f8a5afe2d94bd29a35e872725 (patch) | |
tree | d6d67c193573f1ebe681226edfed747cb5f5451f /apt-pkg | |
parent | f78fb67f4b6a5673e497ba1aeb19568581173909 (diff) | |
download | apt-e250df1a623fd08f8a5afe2d94bd29a35e872725.tar.gz |
Show permission error if ProxyAutoDetect cmd can't be executed
As the proxy commands are not executed as root, a user can run into
permission errors (s)he isn't expecting – as our switching is an
implementation detail – so the error message in that case should really
be better than a generic "error code 100" sending the user in the wrong
direction as that implies the command was executed, but errored out.
Closes: 857885
Diffstat (limited to 'apt-pkg')
-rw-r--r-- | apt-pkg/contrib/proxy.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/apt-pkg/contrib/proxy.cc b/apt-pkg/contrib/proxy.cc index 1b7a92c68..a26ab4fbc 100644 --- a/apt-pkg/contrib/proxy.cc +++ b/apt-pkg/contrib/proxy.cc @@ -13,7 +13,8 @@ #include<apt-pkg/strutl.h> #include<iostream> -#include <unistd.h> +#include<fcntl.h> +#include<unistd.h> #include "proxy.h" /*}}}*/ @@ -41,6 +42,9 @@ bool AutoDetectProxy(URI &URL) if (Debug) std::clog << "Using auto proxy detect command: " << AutoDetectProxyCmd << std::endl; + if (faccessat(AT_FDCWD, AutoDetectProxyCmd.c_str(), R_OK | X_OK, AT_EACCESS) != 0) + return _error->Errno("access", "ProxyAutoDetect command '%s' can not be executed!", AutoDetectProxyCmd.c_str()); + std::string const urlstring = URL; std::vector<const char *> Args; Args.push_back(AutoDetectProxyCmd.c_str()); |