Skip to content

Commit 34f1975

Browse files
author
Nick Kew
committed
PR#39761
Make the error message more meaningful when DBD is configured without a driver. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@413015 13f79535-47bb-0310-9956-ffa450edef68
1 parent 3123b3b commit 34f1975

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

modules/database/mod_dbd.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ typedef enum { cmd_name, cmd_params, cmd_persist,
6767
cmd_min, cmd_keep, cmd_max, cmd_exp
6868
} cmd_parts;
6969

70+
/* a default DBDriver value that'll generate meaningful error messages */
71+
static const char *const no_dbdriver = "[DBDriver unset]";
7072

7173
#define ISINT(val) \
7274
for (p = val; *p; ++p) \
@@ -182,7 +184,7 @@ static void *dbd_merge(apr_pool_t *pool, void *BASE, void *ADD) {
182184
svr_cfg *base = (svr_cfg*) BASE;
183185
svr_cfg *add = (svr_cfg*) ADD;
184186
svr_cfg *cfg = apr_pcalloc(pool, sizeof(svr_cfg));
185-
cfg->name = strcmp(add->name, "") ? add->name : base->name;
187+
cfg->name = (add->name != no_dbdriver) ? add->name : base->name;
186188
cfg->params = strcmp(add->params, "") ? add->params : base->params;
187189
cfg->persist = (add->persist == -1) ? base->persist : add->persist;
188190
#if APR_HAS_THREADS
@@ -205,7 +207,8 @@ static void *dbd_merge(apr_pool_t *pool, void *BASE, void *ADD) {
205207
static void *dbd_cfg(apr_pool_t *p, server_rec *x)
206208
{
207209
svr_cfg *svr = (svr_cfg*) apr_pcalloc(p, sizeof(svr_cfg));
208-
svr->name = svr->params = ""; /* don't risk segfault on misconfiguration */
210+
svr->params = ""; /* don't risk segfault on misconfiguration */
211+
svr->name = no_dbdriver; /* to generate meaningful error messages */
209212
svr->persist = -1;
210213
#if APR_HAS_THREADS
211214
svr->nmin = DEFAULT_NMIN;

0 commit comments

Comments
 (0)