From 0 Mon Sep 17 00:00:00 2001 From: "George V. Kouryachy (Fr. Br. George)" Date: Thu, 17 Oct 2019 13:13:48 +0300 Subject: [PATCH] xterm-alt-utempter diff --git a/xterm/main.c b/xterm/main.c index defaced..defaced 100644 --- a/xterm/main.c +++ b/xterm/main.c @@ -2185,6 +2185,8 @@ lookup_baudrate(const char *value) return result; } +extern int setresgid(gid_t rgid, gid_t egid, gid_t sgid); + int main(int argc, char *argv[]ENVP_ARG) { @@ -2226,6 +2228,9 @@ main(int argc, char *argv[]ENVP_ARG) TRACE_IDS; #endif + /* Drop effective group ID (but save it for utempter) */ + setresgid(-1, getgid(), getegid()); + /* extra length in case longer tty name like /dev/ttyq255 */ ttydev = TypeMallocN(char, sizeof(TTYDEV) + 80); #ifdef USE_PTY_DEVICE @@ -4015,10 +4020,9 @@ spawnXTerm(XtermWidget xw, unsigned line_speed) /* Note: utempter may trim it anyway */ SetUtmpHost(dummy.ut_host, screen); - TRACE(("...calling addToUtmp(pty=%s, hostname=%s, master_fd=%d)\n", - ttydev, dummy.ut_host, screen->respond)); + TRACE(("...calling utempter_add_record(master_fd=%d, hostname=%s)\n", + screen->respond, dummy.ut_host)); UTEMPTER_ADD(ttydev, dummy.ut_host, screen->respond); - added_utmp_entry = True; } #endif @@ -5239,7 +5243,7 @@ Exit(int n) #ifdef USE_UTEMPTER DEBUG_MSG("handle:Exit USE_UTEMPTER\n"); if (!resource.utmpInhibit && added_utmp_entry) { - TRACE(("...calling removeFromUtmp\n")); + TRACE(("...calling utempter_remove_added_record\n")); UTEMPTER_DEL(); } #elif defined(HAVE_UTMP)