From d35d3b20264d6ff6202f6cc92e7f66e00d47fe6c Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Fri, 25 Aug 2006 20:05:14 +0000 Subject: [PATCH] Use LINE_MAX instead of BUFSIZ. Per POSIX, LINE_MAX should be at least 2K. For ITS#4651 --- include/ac/stdlib.h | 10 ++++++++++ servers/slapd/config.c | 6 +++--- servers/slapd/root_dse.c | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/include/ac/stdlib.h b/include/ac/stdlib.h index 560ea8170a..3ddabbb9da 100644 --- a/include/ac/stdlib.h +++ b/include/ac/stdlib.h @@ -35,4 +35,14 @@ # define EXIT_FAILURE 1 #endif +#ifdef HAVE_LIMITS_H +#include +#endif + +#if defined(LINE_MAX) +# define AC_LINE_MAX LINE_MAX +#else +# define AC_LINE_MAX 2048 /* POSIX MIN */ +#endif + #endif /* _AC_STDLIB_H */ diff --git a/servers/slapd/config.c b/servers/slapd/config.c index 5ff1c3776b..39692b4ca2 100644 --- a/servers/slapd/config.c +++ b/servers/slapd/config.c @@ -1154,7 +1154,7 @@ slap_cf_aux_table_parse( const char *word, void *dst, slap_cf_aux_table *tab0, L int slap_cf_aux_table_unparse( void *src, struct berval *bv, slap_cf_aux_table *tab0 ) { - char buf[BUFSIZ], *ptr; + char buf[AC_LINE_MAX], *ptr; slap_cf_aux_table *tab; struct berval tmp; @@ -1610,7 +1610,7 @@ strtok_quote( char *line, char *sep, char **quote_ptr ) return( tmp ); } -static char buf[BUFSIZ]; +static char buf[AC_LINE_MAX]; static char *line; static size_t lmax, lcur; @@ -1618,7 +1618,7 @@ static size_t lmax, lcur; do { \ size_t len = strlen( buf ); \ while ( lcur + len + 1 > lmax ) { \ - lmax += BUFSIZ; \ + lmax += AC_LINE_MAX; \ line = (char *) ch_realloc( line, lmax ); \ } \ strcpy( line + lcur, buf ); \ diff --git a/servers/slapd/root_dse.c b/servers/slapd/root_dse.c index cffae770c0..38f9f670b2 100644 --- a/servers/slapd/root_dse.c +++ b/servers/slapd/root_dse.c @@ -322,7 +322,7 @@ fail: * clients. */ for ( i=LDAP_VERSION3; i<=LDAP_VERSION_MAX; i++ ) { - char buf[BUFSIZ]; + char buf[sizeof("255")]; snprintf(buf, sizeof buf, "%d", i); val.bv_val = buf; val.bv_len = strlen( val.bv_val );