From fe434a05b4ab7ababaf6941296037f4cf55f7f72 Mon Sep 17 00:00:00 2001 From: Andi Gutmans Date: Thu, 7 Sep 2000 15:31:29 +0000 Subject: [PATCH] - Fix crash bug on NetBSD and OpenBSD. MAXPATHLEN didn't get defined correctly and caused a stack overrun. This was *hard* to debug. --- TSRM/configure.in | 5 ++++- TSRM/tsrm_config_common.h | 21 +++++++++++++++++++++ TSRM/tsrm_virtual_cwd.c | 6 ------ 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/TSRM/configure.in b/TSRM/configure.in index 2b4f81908b..da5cb2953c 100644 --- a/TSRM/configure.in +++ b/TSRM/configure.in @@ -22,7 +22,10 @@ dnl TSRM_PTHREAD AC_CHECK_HEADERS( utime.h \ dirent.h \ -stdarg.h +stdarg.h \ +alloca.h \ +unistd.h \ +limits.h ) AC_DEFINE(ZTS,1,[ ]) diff --git a/TSRM/tsrm_config_common.h b/TSRM/tsrm_config_common.h index f549117792..8b80f80121 100644 --- a/TSRM/tsrm_config_common.h +++ b/TSRM/tsrm_config_common.h @@ -7,6 +7,7 @@ #ifndef TSRM_WIN32 # include "tsrm_config.h" +# include #else # include "tsrm_config.w32.h" #endif @@ -15,6 +16,26 @@ #include #endif +#if HAVE_ALLOCA_H +#include +#endif + +#if HAVE_UNISTD_H +#include +#endif + +#if HAVE_LIMITS_H +#include +#endif + +#ifndef MAXPATHLEN +# ifdef PATH_MAX +# define MAXPATHLEN PATH_MAX +# else +# define MAXPATHLEN 256 +# endif +#endif + #if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) # define tsrm_do_alloca(p) alloca(p) # define tsrm_free_alloca(p) diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c index e19a8b2513..facfdfce04 100644 --- a/TSRM/tsrm_virtual_cwd.c +++ b/TSRM/tsrm_virtual_cwd.c @@ -31,12 +31,6 @@ #include "tsrm_virtual_cwd.h" #include "tsrm_strtok_r.h" - -/* Are we doing enough to detect this? */ -#ifndef MAXPATHLEN -#define MAXPATHLEN 256 -#endif - #ifdef TSRM_WIN32 #include #endif -- 2.40.0