summaryrefslogtreecommitdiff
path: root/src/src/macros.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/src/macros.h')
-rw-r--r--src/src/macros.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/src/macros.h b/src/src/macros.h
index cebbf4085..f83ba1933 100644
--- a/src/src/macros.h
+++ b/src/src/macros.h
@@ -153,7 +153,9 @@ enough to hold all the headers from a normal kind of message. */
/* The initial size of a big buffer for use in various places. It gets put
into big_buffer_size and in some circumstances increased. It should be at least
-as long as the maximum path length. */
+as long as the maximum path length PLUS room for string additions.
+Let's go with "at least twice as large as maximum path length".
+*/
#ifdef AUTH_HEIMDAL_GSSAPI
/* RFC 4121 section 5.2, SHOULD support 64K input buffers */
@@ -162,10 +164,12 @@ as long as the maximum path length. */
# define __BIG_BUFFER_SIZE 16384
#endif
-#if defined PATH_MAX && PATH_MAX > __BIG_BUFFER_SIZE
-# define BIG_BUFFER_SIZE PATH_MAX
-#elif defined MAXPATHLEN && MAXPATHLEN > __BIG_BUFFER_SIZE
-# define BIG_BUFFER_SIZE MAXPATHLEN
+#ifndef PATH_MAX
+/* exim.h will have ensured this exists before including us. */
+# error headers confusion, PATH_MAX missing in macros.h
+#endif
+#if (PATH_MAX*2) > __BIG_BUFFER_SIZE
+# define BIG_BUFFER_SIZE (PATH_MAX*2)
#else
# define BIG_BUFFER_SIZE __BIG_BUFFER_SIZE
#endif