unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Ulrich Mueller <ulm@gentoo.org>
To: Paul Eggert <eggert@cs.ucla.edu>
Cc: 33847@debbugs.gnu.org
Subject: bug#33847: 27.0.50; emacsclient does not find server socket
Date: Sun, 20 Jan 2019 18:59:39 +0100	[thread overview]
Message-ID: <w6g7eezw6pg.fsf@kph.uni-mainz.de> (raw)
In-Reply-To: <e293a1e9-e042-bb42-6b40-d887d60d98c5@cs.ucla.edu> (Paul Eggert's message of "Sat, 29 Dec 2018 22:44:59 -0800")

>>>>> On Sun, 30 Dec 2018, Paul Eggert wrote:

> Because we're not absolutists. On older systems that do not have
> adequate provisions for security, Emacs does the best it can: that's
> better than not doing anything, and people who run older, less-secure
> systems are likely to not care all that much about security anyway so
> this is OK. On newer systems that are more secure, though, Emacs can
> be more secure.

Since there doesn't seem to be any progress here, please find below
the patch that I am using since some time.

From f8d87a0a89b91c120935bd5be802604b2c749767 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ulrich=20M=C3=BCller?= <ulm@gentoo.org>
Date: Sun, 20 Jan 2019 18:48:45 +0100
Subject: [PATCH] Add a fallback for the socket location in emacsclient
 (bug#33847)

* lib-src/emacsclient.c (set_local_socket): Fall back to TMPDIR
if the socket is not found under XDG_RUNTIME_DIR.
---
 lib-src/emacsclient.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index f476840898..27b945133e 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -1356,6 +1356,7 @@ set_local_socket (char const *server_name)
   enum { socknamesize = sizeof server.un.sun_path };
   int tmpdirlen = -1;
   int socknamelen = -1;
+  int sock_status = -1;
   uid_t uid = geteuid ();
 
   if (strchr (server_name, '/')
@@ -1366,9 +1367,15 @@ set_local_socket (char const *server_name)
       /* socket_name is a file name component.  */
       char const *xdg_runtime_dir = egetenv ("XDG_RUNTIME_DIR");
       if (xdg_runtime_dir)
-	socknamelen = snprintf (sockname, socknamesize, "%s/emacs/%s",
-				xdg_runtime_dir, server_name);
-      else
+	{
+	  socknamelen = snprintf (sockname, socknamesize, "%s/emacs/%s",
+				  xdg_runtime_dir, server_name);
+	  /* Check if sockname is valid and if the socket exists. */
+	  if (0 <= socknamelen && socknamelen < socknamesize)
+	    sock_status = socket_status (sockname, uid);
+	}
+
+      if (sock_status)
 	{
 	  char const *tmpdir = egetenv ("TMPDIR");
 	  if (tmpdir)
@@ -1399,7 +1406,9 @@ set_local_socket (char const *server_name)
     }
 
   /* See if the socket exists, and if it's owned by us. */
-  int sock_status = socket_status (sockname, uid);
+  if (sock_status)
+    sock_status = socket_status (sockname, uid);
+
   if (sock_status)
     {
       /* Failing that, see if LOGNAME or USER exist and differ from
-- 
2.19.1






  reply	other threads:[~2019-01-20 17:59 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-23  9:48 bug#33847: 27.0.50; emacsclient does not find server socket Ulrich Mueller
2018-12-23 16:20 ` Ulrich Mueller
2018-12-25 21:02 ` Paul Eggert
2018-12-25 23:29   ` Ulrich Mueller
2018-12-26  0:24     ` Paul Eggert
2018-12-26  2:27       ` Ulrich Mueller
2018-12-26  6:59         ` Paul Eggert
2018-12-26 15:14           ` Ulrich Mueller
2018-12-26 18:32             ` Paul Eggert
2018-12-28  6:37               ` Ulrich Mueller
2018-12-30  6:47                 ` Paul Eggert
2018-12-27  3:38       ` Richard Stallman
2018-12-27 16:42         ` Paul Eggert
2018-12-27 17:13           ` Paul Eggert
2018-12-28  6:19             ` Ulrich Mueller
2018-12-28  6:35               ` Paul Eggert
2018-12-28  6:51                 ` Ulrich Mueller
2018-12-30  6:44                   ` Paul Eggert
2019-01-20 17:59                     ` Ulrich Mueller [this message]
2019-02-10  8:37                       ` Ulrich Mueller
2019-02-10  9:48                         ` Eli Zaretskii
2020-08-19 11:05                           ` Lars Ingebrigtsen
2020-08-21 21:28                             ` Paul Eggert
2020-08-22  7:24                               ` Ulrich Mueller
2020-08-22  7:33                                 ` Andreas Schwab
2020-08-22  7:45                                   ` Ulrich Mueller
2020-08-22  8:00                                 ` Eli Zaretskii
2020-08-22 17:51                                 ` Paul Eggert
2020-08-22  7:59                               ` Eli Zaretskii
2020-08-22 17:55                                 ` Paul Eggert
2020-08-22 18:30                                   ` Eli Zaretskii
2020-08-22 21:20                                     ` Paul Eggert
2020-08-23  5:41                                       ` Eli Zaretskii
2021-07-22 13:08                                         ` Lars Ingebrigtsen
2021-07-22 16:45                                           ` Eli Zaretskii
2021-07-22 17:05                                             ` Lars Ingebrigtsen
2021-07-22 17:30                                               ` Eli Zaretskii
2021-07-23 11:31                                                 ` Lars Ingebrigtsen
2021-07-23 11:38                                                   ` Lars Ingebrigtsen
2021-07-23 23:58                                                     ` Paul Eggert
2021-07-24  6:23                                                       ` Eli Zaretskii
2021-07-24  7:48                                                         ` Paul Eggert
2021-07-24  8:25                                                           ` Eli Zaretskii
2021-07-24 23:31                                                             ` Paul Eggert
2021-07-25  6:32                                                               ` Eli Zaretskii
2021-07-25 16:22                                                                 ` Paul Eggert
     [not found]                                                                 ` <a0688fd6-9e73-73d8-6138-3280981abcb5@cs.ucla.edu>
2021-07-25 16:34                                                                   ` Eli Zaretskii
2021-10-04  6:45                                                                   ` Paul Eggert
2021-07-25  7:27                                                               ` Eli Zaretskii
2021-07-24 10:11                                                       ` Lars Ingebrigtsen
2021-07-24 19:37                                                         ` Paul Eggert
2021-07-23 11:58                                                   ` Eli Zaretskii
2021-07-22 18:30                                             ` Ulrich Mueller
2019-04-27  1:41 ` Teika Kazura
2019-04-27  7:56   ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=w6g7eezw6pg.fsf@kph.uni-mainz.de \
    --to=ulm@gentoo.org \
    --cc=33847@debbugs.gnu.org \
    --cc=eggert@cs.ucla.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).