From 0d747e0135e71b57af9ad910fe07138a85bf8ee9 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Fri, 20 Oct 2006 18:52:46 +0000 Subject: [PATCH] Fix BUFSIZ v LINE_MAX issue --- CHANGES | 1 + include/ac/stdlib.h | 10 ++++++++++ libraries/libldap/init.c | 2 +- servers/slapd/config.c | 6 +++--- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index fce0a83d42..5e55c6d1f9 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,7 @@ OpenLDAP 2.3.28 Release Added ldapsearch bad filter pattern check (ITS#4647) Fixed slapd global access controls initialization (ITS#4654) Fixed slapd setting c_sasl_bindop only on SASL binds + Fixed slapd max line length issue (ITS#4651) Fixed slapd return code not being propagated (ITS#4565) Fixed slapd integerBitAndMatch (ITS#4672) Fixed slapd syncrepl modrdn new superior (ITS#4695) 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/libraries/libldap/init.c b/libraries/libldap/init.c index 0a6dc2dfcd..4ade449c75 100644 --- a/libraries/libldap/init.c +++ b/libraries/libldap/init.c @@ -116,7 +116,7 @@ static const struct ol_attribute { static void openldap_ldap_init_w_conf( const char *file, int userconf ) { - char linebuf[ LINE_MAX ]; + char linebuf[ AC_LINE_MAX ]; FILE *fp; int i; char *cmd, *opt; diff --git a/servers/slapd/config.c b/servers/slapd/config.c index 5146a85c5a..8b043a4f00 100644 --- a/servers/slapd/config.c +++ b/servers/slapd/config.c @@ -1120,7 +1120,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; @@ -1307,7 +1307,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; @@ -1315,7 +1315,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 ); \ -- 2.39.5