Blob Blame History Raw
--- tmux.c.orig	2010-07-19 07:07:06.311243142 +0200
+++ tmux.c	2010-07-19 07:08:54.969213735 +0200
@@ -185,9 +185,10 @@
 {
 	char		base[MAXPATHLEN], *path;
 	struct stat	sb;
-	u_int		uid;
+	u_int		uid,gid;
 
 	uid = getuid();
+    gid = getgid();
 	xsnprintf(base, MAXPATHLEN, "%s/tmux-%d", _PATH_TMP, uid);
 
 	if (mkdir(base, S_IRWXU) != 0 && errno != EEXIST)
@@ -203,6 +204,9 @@
 		errno = EACCES;
 		return (NULL);
 	}
+    /* drop unnecessary privileges */
+    if (setresgid(gid, gid, gid) != 0)
+        return (NULL);
 
 	xasprintf(&path, "%s/%s", base, label);
 	return (path);