X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fcross_linux.cc;h=65151791cc820dc4f83ab1317e9418a59ac39aa0;hb=93048e5a6f33cc8e2fc547bf65c41551696e23c6;hp=a3dbdebf2a4b9fb5e3c10a1959d0d2b5985c19c0;hpb=8963f0007af1a312017b9627c18b82ec2a577591;p=dcpomatic.git diff --git a/src/lib/cross_linux.cc b/src/lib/cross_linux.cc index a3dbdebf2..65151791c 100644 --- a/src/lib/cross_linux.cc +++ b/src/lib/cross_linux.cc @@ -26,11 +26,14 @@ #include "dcpomatic_log.h" #include "exceptions.h" #include "log.h" +#include "warnings.h" #include #include +DCPOMATIC_DISABLE_WARNINGS extern "C" { #include } +DCPOMATIC_ENABLE_WARNINGS #include #if BOOST_VERSION >= 106100 #include @@ -368,7 +371,6 @@ bool Drive::unmount () { for (auto i: _mount_points) { - PrivilegeEscalator esc; int const r = umount(i.string().c_str()); LOG_DISK("Tried to unmount %1 and got %2 and %3", i.string(), r, errno); if (r == -1) { @@ -379,41 +381,6 @@ Drive::unmount () } -void -unprivileged () -{ - uid_t ruid, euid, suid; - if (getresuid(&ruid, &euid, &suid) == -1) { - cerr << "getresuid() failed.\n"; - } - if (seteuid(ruid) == -1) { - cerr << "seteuid() failed.\n"; - } -} - - -bool PrivilegeEscalator::test = false; - - -PrivilegeEscalator::~PrivilegeEscalator () -{ - if (!test) { - unprivileged (); - } -} - - -PrivilegeEscalator::PrivilegeEscalator () -{ - if (!test) { - int const r = seteuid(0); - if (r < 0) { - throw PrivilegeError (String::compose("seteuid() call failed with %1", errno)); - } - } -} - - boost::filesystem::path config_path () {