- sprintf (server.sun_path, "/tmp/esrv%d-%s",
- (int) pw->pw_uid, system_name);
+ socket_name = alloca (100 + strlen (server_name));
+ sprintf (socket_name, "/tmp/emacs%d/%s",
+ (int) pw->pw_uid, server_name);
+
+ if (strlen (socket_name) < sizeof (server.sun_path))
+ strcpy (server.sun_path, socket_name);
+ else
+ {
+ fprintf (stderr, "%s: socket-name %s too long",
+ argv[0], socket_name);
+ exit (EXIT_FAILURE);
+ }
+