summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2021-02-16 19:44:59 +0100
committerBenny Baumann <BenBE@geshi.org>2021-02-17 15:59:50 +0100
commit82157f598e09790b408a4e519a25d3affba95240 (patch)
tree77f86dbd0a50bb2e4017a0fe308e9967adf91279
parenta73064dda97d751047748c4539a969495bdadf73 (diff)
Refactor to remove no-op calls
This removes the call-sites of the removed setuid feature
-rw-r--r--CRT.h3
-rw-r--r--EnvScreen.c2
-rw-r--r--Process.c8
-rw-r--r--Settings.c18
-rw-r--r--TraceScreen.c2
5 files changed, 6 insertions, 27 deletions
diff --git a/CRT.h b/CRT.h
index ddd00169..91c2b89d 100644
--- a/CRT.h
+++ b/CRT.h
@@ -160,9 +160,6 @@ extern int CRT_scrollWheelVAmount;
extern ColorScheme CRT_colorScheme;
-static inline void CRT_dropPrivileges(void) { }
-static inline void CRT_restorePrivileges(void) { }
-
void CRT_init(const Settings* settings, bool allowUnicode);
void CRT_done(void);
diff --git a/EnvScreen.c b/EnvScreen.c
index 4d7de7d9..bd8a2b03 100644
--- a/EnvScreen.c
+++ b/EnvScreen.c
@@ -34,9 +34,7 @@ static void EnvScreen_scan(InfoScreen* this) {
Panel_prune(panel);
- CRT_dropPrivileges();
char* env = Platform_getProcessEnv(this->process->pid);
- CRT_restorePrivileges();
if (env) {
for (const char* p = env; *p; p = strrchr(p, 0) + 1)
InfoScreen_addLine(this, p);
diff --git a/Process.c b/Process.c
index 9ee7a0f8..3fbcb634 100644
--- a/Process.c
+++ b/Process.c
@@ -479,10 +479,9 @@ bool Process_isTomb(const Process* this) {
}
bool Process_setPriority(Process* this, int priority) {
- CRT_dropPrivileges();
int old_prio = getpriority(PRIO_PROCESS, this->pid);
int err = setpriority(PRIO_PROCESS, this->pid, priority);
- CRT_restorePrivileges();
+
if (err == 0 && old_prio != getpriority(PRIO_PROCESS, this->pid)) {
this->nice = priority;
}
@@ -494,10 +493,7 @@ bool Process_changePriorityBy(Process* this, Arg delta) {
}
bool Process_sendSignal(Process* this, Arg sgn) {
- CRT_dropPrivileges();
- bool ok = (kill(this->pid, sgn.i) == 0);
- CRT_restorePrivileges();
- return ok;
+ return kill(this->pid, sgn.i) == 0;
}
int Process_pidCompare(const void* v1, const void* v2) {
diff --git a/Settings.c b/Settings.c
index a6ca7935..3c93bcd2 100644
--- a/Settings.c
+++ b/Settings.c
@@ -125,10 +125,7 @@ static void readFields(ProcessField* fields, uint32_t* flags, const char* line)
}
static bool Settings_read(Settings* this, const char* fileName, int initialCpuCount) {
- FILE* fd;
- CRT_dropPrivileges();
- fd = fopen(fileName, "r");
- CRT_restorePrivileges();
+ FILE* fd = fopen(fileName, "r");
if (!fd)
return false;
@@ -284,15 +281,10 @@ static void writeMeterModes(Settings* this, FILE* fd, int column) {
}
bool Settings_write(Settings* this) {
- FILE* fd;
-
- CRT_dropPrivileges();
- fd = fopen(this->filename, "w");
- CRT_restorePrivileges();
-
- if (fd == NULL) {
+ FILE* fd = fopen(this->filename, "w");
+ if (fd == NULL)
return false;
- }
+
fprintf(fd, "# Beware! This file is rewritten by htop when settings are changed in the interface.\n");
fprintf(fd, "# The parser is also very primitive, and not human-friendly.\n");
writeFields(fd, this->fields, "fields");
@@ -410,7 +402,6 @@ Settings* Settings_new(int initialCpuCount) {
htopDir = String_cat(home, "/.config/htop");
}
legacyDotfile = String_cat(home, "/.htoprc");
- CRT_dropPrivileges();
(void) mkdir(configDir, 0700);
(void) mkdir(htopDir, 0700);
free(htopDir);
@@ -421,7 +412,6 @@ Settings* Settings_new(int initialCpuCount) {
free(legacyDotfile);
legacyDotfile = NULL;
}
- CRT_restorePrivileges();
}
this->colorScheme = 0;
this->enableMouse = true;
diff --git a/TraceScreen.c b/TraceScreen.c
index 3e3971d7..c21e4802 100644
--- a/TraceScreen.c
+++ b/TraceScreen.c
@@ -87,8 +87,6 @@ bool TraceScreen_forkTracer(TraceScreen* this) {
dup2(fdpair[1], STDERR_FILENO);
close(fdpair[1]);
- CRT_dropPrivileges();
-
char buffer[32] = {0};
xSnprintf(buffer, sizeof(buffer), "%d", this->super.process->pid);
execlp("strace", "strace", "-T", "-tt", "-s", "512", "-p", buffer, NULL);

© 2014-2024 Faster IT GmbH | imprint | privacy policy