]> git.eshelyaron.com Git - emacs.git/commitdiff
Root emacsclient no longer connects to non-root sockets
authorGlenn Morris <rgm@gnu.org>
Tue, 13 Nov 2018 18:15:39 +0000 (13:15 -0500)
committerGlenn Morris <rgm@gnu.org>
Tue, 13 Nov 2018 18:15:39 +0000 (13:15 -0500)
* lib-src/emacsclient.c (set_local_socket): Don't ignore socket
ownership when run by root.
Ref: http://lists.gnu.org/r/emacs-devel/2018-11/msg00019.html

etc/NEWS
lib-src/emacsclient.c

index bbcd7a5747ad6e570a250067d418d5e4242c98c1..2f07abb4eb552f31f8e872c03fcea2c55b490e76 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -119,13 +119,19 @@ the new version of the file again.)
 \f
 * Changes in Emacs 27.1
 
+** emacsclient
+
 +++
-** emacsclient now supports the 'EMACS_SOCKET_NAME' environment variable.
+*** emacsclient now supports the 'EMACS_SOCKET_NAME' environment variable.
 The behavior is identical to 'EMACS_SERVER_FILE', in that the
 command-line value specified via '--socket-name' will override the
 environment, and the natural default to TMPDIR, then "/tmp", continues
 to apply.
 
+---
+*** When run by root, emacsclient no longer connects to non-root sockets.
+(Instead you can use Tramp methods to run root commands in a non-root Emacs.)
+
 +++
 ** The function 'read-passwd' uses '*' as default character to hide passwords.
 
index 42b8dd6227b02596630d834de8c9aba324201bce..6fbc2300958e66302f0f9bb3571aca3496aecce9 100644 (file)
@@ -1365,14 +1365,9 @@ set_local_socket (const char *local_socket_name)
     switch (sock_status)
       {
       case 1:
-       /* There's a socket, but it isn't owned by us.  This is OK if
-          we are root. */
-       if (0 != geteuid ())
-         {
-           message (true, "%s: Invalid socket owner\n", progname);
-           return INVALID_SOCKET;
-         }
-       break;
+       /* There's a socket, but it isn't owned by us.  */
+       message (true, "%s: Invalid socket owner\n", progname);
+       return INVALID_SOCKET;
 
       case 2:
        /* `stat' failed */