commit 2d93d3de7e302cc592ded7ef8b53d6f04b2973d0 Author: devsab Date: Fri Sep 13 11:28:24 2019 -0400 fix setuid code diff --git a/src/file.cc b/src/file.cc index a9eafb6..2376fc3 100644 --- a/src/file.cc +++ b/src/file.cc @@ -449,7 +449,7 @@ cssc::Failure set_file_mode(const std::string &gname, bool writable, bool execut */ cssc::Failure set_gfile_writable(const std::string& gname, bool writable, bool executable) { - TempPrivDrop guard(); + TempPrivDrop guard; return set_file_mode(gname, writable, executable); } @@ -465,7 +465,7 @@ cssc::Failure set_gfile_writable(const std::string& gname, bool writable, bool e cssc::Failure unlink_gfile_if_present(const char *gfile_name) { - TempPrivDrop guard(); + TempPrivDrop guard; if (file_exists(gfile_name)) { if (unlink(gfile_name) < 0) @@ -485,7 +485,7 @@ cssc::Failure unlink_gfile_if_present(const char *gfile_name) */ cssc::Failure unlink_file_as_real_user(const char *gfile_name) { - TempPrivDrop guard(); + TempPrivDrop guard; if (unlink(gfile_name) < 0) { // The caller is responsible for issuing any error message, @@ -610,7 +610,7 @@ fcreate(const std::string& name, int mode) { FILE *fopen_as_real_user(const char *s, const char *mode) { - TempPrivDrop guard(); + TempPrivDrop guard; return fopen(s, mode); } diff --git a/src/filediff.cc b/src/filediff.cc index f2aee05..5dd4bd7 100644 --- a/src/filediff.cc +++ b/src/filediff.cc @@ -62,7 +62,7 @@ FileDiff::start() std::string cmd(std::string(CONFIG_DIFF_COMMAND) + space + quote + name1_ + quote + space + quote + name2_ + quote); - TempPrivDrop guard(); + TempPrivDrop guard; fp_ = popen(cmd.c_str(), "r"); return fp_; } diff --git a/src/privs.cc b/src/privs.cc index 37835c0..162a2bc 100644 --- a/src/privs.cc +++ b/src/privs.cc @@ -22,10 +22,16 @@ * placed in the Public Domain. */ #include "config.h" + +#include "cssc.h" +#include "sysdep.h" +#include "quit.h" #include "privs.h" +#include "stringify.h" -namespace -{ + +//namespace +//{ /* A flag to indicate whether or not the programme is an privileged (effective UID != real UID) or unprivileged (effective UID == real @@ -134,7 +140,7 @@ restore_privileges() #endif /* CONFIG_UIDS */ -} // unnamed namespace +//} // unnamed namespace TempPrivDrop::TempPrivDrop(bool real) : real_(real)