From 3d3d237c2791899a4b19d72ebc286216442f9fd9 Mon Sep 17 00:00:00 2001 From: xSlendiX Date: Wed, 8 Sep 2021 18:10:32 +0300 Subject: [PATCH] Add enviroment variables --- sus.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sus.c b/sus.c index 59678ee..df3512c 100644 --- a/sus.c +++ b/sus.c @@ -42,6 +42,8 @@ struct termios old_terminal; void getln(int, char*, size_t); +struct passwd* pw; + void intHandler(int dummy) { tcsetattr(STDIN_FILENO, TCSANOW, &old_terminal); @@ -49,8 +51,11 @@ void intHandler(int dummy) exit(0); } -int main(int argc, char** argv) +int main(int argc, char** argv, char** envp) { + uid = getuid(); + pw = getpwuid(uid); + if (CheckIfInGroup("wheel") != 1) { puts("ERROR: Not in the wheel group."); return 0; @@ -130,12 +135,9 @@ int main(int argc, char** argv) sigaction(SIGTTIN, &sa, NULL); sigaction(SIGTTOU, &sa, NULL); + argv += command_start; setuid(uid); - char* path = getenv("PATH"); - char pathenv[strlen(path) + sizeof("PATH=")]; - sprintf(pathenv, "PATH=%s", path); - char* envp[] = { pathenv, NULL }; execvpe(argv[0], argv, envp); return 0; @@ -143,7 +145,6 @@ int main(int argc, char** argv) int GetUID(const char* username, uid_t* uid) { - struct passwd* pw; pw = getpwnam(username); if (pw != NULL) { *uid = pw->pw_uid;