summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/server.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2009-11-11 08:00:42 +0000
committernicm <nicm@openbsd.org>2009-11-11 08:00:42 +0000
commit37dfd44392dfba12f73f75c3912b008f5d288de4 (patch)
treeb397f90d5da4af9aaf3cf82e6dbbeeb8e26ce9ff /usr.bin/tmux/server.c
parentFix an obvious use after free. Found by parfait. Reported and OK jsg@ (diff)
downloadwireguard-openbsd-37dfd44392dfba12f73f75c3912b008f5d288de4.tar.xz
wireguard-openbsd-37dfd44392dfba12f73f75c3912b008f5d288de4.zip
Only need to chmod +x or -x the socket when a client is created, lost or
attached, rather than every event loop.
Diffstat (limited to 'usr.bin/tmux/server.c')
-rw-r--r--usr.bin/tmux/server.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/usr.bin/tmux/server.c b/usr.bin/tmux/server.c
index 05515db4248..fbdb2f25754 100644
--- a/usr.bin/tmux/server.c
+++ b/usr.bin/tmux/server.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server.c,v 1.74 2009/11/05 08:50:32 nicm Exp $ */
+/* $OpenBSD: server.c,v 1.75 2009/11/11 08:00:42 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -59,7 +59,6 @@ void server_loop(void);
int server_should_shutdown(void);
void server_send_shutdown(void);
void server_clean_dead(void);
-int server_update_socket(void);
void server_accept_callback(int, short, void *);
void server_signal_callback(int, short, void *);
void server_child_signal(void);
@@ -105,6 +104,8 @@ server_create_socket(void)
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
fatal("fcntl failed");
+ server_update_socket();
+
return (fd);
}
@@ -208,8 +209,6 @@ void
server_loop(void)
{
while (!server_should_shutdown()) {
- server_update_socket();
-
event_loop(EVLOOP_ONCE);
server_window_loop();
@@ -288,7 +287,7 @@ server_clean_dead(void)
}
/* Update socket execute permissions based on whether sessions are attached. */
-int
+void
server_update_socket(void)
{
struct session *s;
@@ -312,8 +311,6 @@ server_update_socket(void)
else
chmod(socket_path, S_IRUSR|S_IWUSR);
}
-
- return (n);
}
/* Callback for server socket. */