From 324431062bff39a1bd3969bd37d4913526dd583f Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Mon, 20 Mar 2006 12:12:28 +0000 Subject: [PATCH] refuse illegal values for "threads" (ITS#4433) --- doc/man/man5/slapd.conf.5 | 2 +- servers/slapd/bconfig.c | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/doc/man/man5/slapd.conf.5 b/doc/man/man5/slapd.conf.5 index ef6e5d30f7..605ddd881c 100644 --- a/doc/man/man5/slapd.conf.5 +++ b/doc/man/man5/slapd.conf.5 @@ -893,7 +893,7 @@ The default is 4194303. .TP .B threads Specify the maximum size of the primary thread pool. -The default is 16. +The default is 16; the minimum value is 2. .TP .B timelimit {|unlimited} .TP diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index 204d731d2c..49a2ce7370 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -510,8 +510,13 @@ static ConfigTable config_back_cf_table[] = { { "syncrepl", NULL, 0, 0, 0, ARG_DB|ARG_MAGIC, &syncrepl_config, "( OLcfgDbAt:0.11 NAME 'olcSyncrepl' " "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL }, - { "threads", "count", 2, 2, 0, ARG_INT|ARG_MAGIC|CFG_THREADS, - &config_generic, "( OLcfgGlAt:66 NAME 'olcThreads' " + { "threads", "count", 2, 2, 0, +#ifdef NO_THREADS + ARG_IGNORED, NULL, +#else + ARG_INT|ARG_MAGIC|CFG_THREADS, &config_generic, +#endif + "( OLcfgGlAt:66 NAME 'olcThreads' " "SYNTAX OMsInteger SINGLE-VALUE )", NULL, NULL }, { "timelimit", "limit", 2, 0, 0, ARG_MAY_DB|ARG_MAGIC, &config_timelimit, "( OLcfgGlAt:67 NAME 'olcTimeLimit' " @@ -1111,7 +1116,15 @@ config_generic(ConfigArgs *c) { break; case CFG_THREADS: - if ( c->value_int > 2 * SLAP_MAX_WORKER_THREADS ) { + if ( c->value_int < 2 ) { + snprintf( c->msg, sizeof( c->msg ), + "threads=%d smaller than minimum value 2", + c->value_int ); + Debug(LDAP_DEBUG_ANY, "%s: %s.\n", + c->log, c->msg, 0 ); + return 1; + + } else if ( c->value_int > 2 * SLAP_MAX_WORKER_THREADS ) { snprintf( c->msg, sizeof( c->msg ), "warning, threads=%d larger than twice the default (2*%d=%d); YMMV", c->value_int, SLAP_MAX_WORKER_THREADS, 2 * SLAP_MAX_WORKER_THREADS ); -- 2.39.5