# HG changeset patch # User Juanma Barranquero # Date 1225294446 0 # Node ID e0e326adf3bc6d48960cff64dc89fac75860148f # Parent 91fa9fdc5cb4592c03bcef058d3da8d8c8207fb0 * emacsclient.c (EXTRA_SPACE): New macro. (get_server_config, set_local_socket): Use it. diff -r 91fa9fdc5cb4 -r e0e326adf3bc lib-src/ChangeLog --- a/lib-src/ChangeLog Wed Oct 29 13:09:57 2008 +0000 +++ b/lib-src/ChangeLog Wed Oct 29 15:34:06 2008 +0000 @@ -1,5 +1,8 @@ 2008-10-29 Juanma Barranquero + * emacsclient.c (EXTRA_SPACE): New macro. + (get_server_config, set_local_socket): Use it. + * makefile.w32-in ($(BLD)/sorted-doc.$(O)): Remove spurious backslash. Reported by Guillaume Conjat . diff -r 91fa9fdc5cb4 -r e0e326adf3bc lib-src/emacsclient.c --- a/lib-src/emacsclient.c Wed Oct 29 13:09:57 2008 +0000 +++ b/lib-src/emacsclient.c Wed Oct 29 15:34:06 2008 +0000 @@ -109,6 +109,10 @@ #ifndef NO_RETURN #define NO_RETURN #endif + +/* Additional space when allocating buffers for filenames, etc. */ +#define EXTRA_SPACE 100 + /* Name used to invoke this program. */ char *progname; @@ -316,8 +320,8 @@ { result = (char *) xmalloc (cbData); - if ((RegQueryValueEx (hrootkey, key, NULL, type, result, &cbData) != ERROR_SUCCESS) || - (*result == 0)) + if ((RegQueryValueEx (hrootkey, key, NULL, type, result, &cbData) != ERROR_SUCCESS) + || (*result == 0)) { free (result); result = NULL; @@ -893,14 +897,16 @@ if (home) { - char *path = alloca (32 + strlen (home) + strlen (server_file)); + char *path = alloca (strlen (home) + strlen (server_file) + + EXTRA_SPACE); sprintf (path, "%s/.emacs.d/server/%s", home, server_file); config = fopen (path, "rb"); } #ifdef WINDOWSNT if (!config && (home = egetenv ("APPDATA"))) { - char *path = alloca (32 + strlen (home) + strlen (server_file)); + char *path = alloca (strlen (home) + strlen (server_file) + + EXTRA_SPACE); sprintf (path, "%s/.emacs.d/server/%s", home, server_file); config = fopen (path, "rb"); } @@ -1142,7 +1148,8 @@ tmpdir = egetenv ("TMPDIR"); if (!tmpdir) tmpdir = "/tmp"; - socket_name = alloca (32 + strlen (tmpdir) + strlen (server_name)); + socket_name = alloca (strlen (tmpdir) + strlen (server_name) + + EXTRA_SPACE); sprintf (socket_name, "%s/emacs%d/%s", tmpdir, (int) geteuid (), server_name); } @@ -1178,8 +1185,8 @@ if (pw && (pw->pw_uid != geteuid ())) { /* We're running under su, apparently. */ - socket_name = alloca (32 + strlen (tmpdir) - + strlen (server_name)); + socket_name = alloca (strlen (tmpdir) + strlen (server_name) + + EXTRA_SPACE); sprintf (socket_name, "%s/emacs%d/%s", tmpdir, (int) pw->pw_uid, server_name);