From 4309d65475d2b5ad4e00a9c590a2e97c1c90ca16 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Mon, 12 Nov 2007 15:12:08 +0000 Subject: realpath the socket path; also sprinkle some const. --- tmux.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'tmux.c') diff --git a/tmux.c b/tmux.c index a8d69338..b6ba1533 100644 --- a/tmux.c +++ b/tmux.c @@ -1,4 +1,4 @@ -/* $Id: tmux.c,v 1.39 2007-11-09 11:03:35 nicm Exp $ */ +/* $Id: tmux.c,v 1.40 2007-11-12 15:12:08 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -19,7 +19,6 @@ #include #include -#include #include #include #include @@ -174,7 +173,7 @@ main(int argc, char **argv) struct hdr hdr; const char *shell; struct passwd *pw; - char *path, *cause, *name; + char *path, rpath[MAXPATHLEN], *cause, *name; int n, opt; path = name = NULL; @@ -209,6 +208,16 @@ main(int argc, char **argv) bell_action = BELL_ANY; + if (path == NULL) { + xasprintf(&path, + "%s/%s-%lu", _PATH_TMP, __progname, (u_long) getuid()); + } + if (realpath(path, rpath) == NULL) { + log_warn("%s", path); + exit(1); + } + xfree(path); + shell = getenv("SHELL"); if (shell == NULL || *shell == '\0') { pw = getpwuid(getuid()); @@ -231,7 +240,7 @@ main(int argc, char **argv) if (!(cmd->entry->flags & CMD_NOSESSION) || (cmd->entry->flags & CMD_CANTNEST)) client_fill_session(&data); - if (client_init(path, &cctx, cmd->entry->flags & CMD_STARTSERVER) != 0) + if (client_init(rpath, &cctx, cmd->entry->flags & CMD_STARTSERVER) != 0) exit(1); b = buffer_create(BUFSIZ); cmd_send_string(b, name); @@ -242,8 +251,6 @@ main(int argc, char **argv) MSG_COMMAND, &data, sizeof data, BUFFER_OUT(b), BUFFER_USED(b)); buffer_destroy(b); - if (path != NULL) - xfree(path); if (name != NULL) xfree(name); -- cgit