Mercurial > emacs
diff lib-src/emacsclient.c @ 99215:e0e326adf3bc
* emacsclient.c (EXTRA_SPACE): New macro.
(get_server_config, set_local_socket): Use it.
| author | Juanma Barranquero <lekktu@gmail.com> |
|---|---|
| date | Wed, 29 Oct 2008 15:34:06 +0000 |
| parents | 01e8c1513572 |
| children | 8cade16f7427 |
line wrap: on
line diff
--- 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);
