Skip to content

Commit dfd14d2

Browse files
committed
make some small steps towards getting the post config hook
to return an error rather than exiting directly git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95567 13f79535-47bb-0310-9956-ffa450edef68
1 parent 74debc6 commit dfd14d2

1 file changed

Lines changed: 23 additions & 12 deletions

File tree

modules/ssl/ssl_engine_init.c

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,8 @@ static void ssl_tmp_keys_free(server_rec *s)
141141
MODSSL_TMP_KEYS_FREE(mc, DH);
142142
}
143143

144-
static void ssl_tmp_key_init_rsa(server_rec *s,
145-
int bits, int idx)
144+
static int ssl_tmp_key_init_rsa(server_rec *s,
145+
int bits, int idx)
146146
{
147147
SSLModConfigRec *mc = myModConfig(s);
148148

@@ -152,13 +152,14 @@ static void ssl_tmp_key_init_rsa(server_rec *s,
152152
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
153153
"Init: Failed to generate temporary "
154154
"%d bit RSA private key", bits);
155-
ssl_die();
155+
return !OK;
156156
}
157157

158+
return OK;
158159
}
159160

160-
static void ssl_tmp_key_init_dh(server_rec *s,
161-
int bits, int idx)
161+
static int ssl_tmp_key_init_dh(server_rec *s,
162+
int bits, int idx)
162163
{
163164
SSLModConfigRec *mc = myModConfig(s);
164165

@@ -168,8 +169,10 @@ static void ssl_tmp_key_init_dh(server_rec *s,
168169
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
169170
"Init: Failed to generate temporary "
170171
"%d bit DH parameters", bits);
171-
ssl_die();
172+
return !OK;
172173
}
174+
175+
return OK;
173176
}
174177

175178
#define MODSSL_TMP_KEY_INIT_RSA(s, bits) \
@@ -178,19 +181,25 @@ static void ssl_tmp_key_init_dh(server_rec *s,
178181
#define MODSSL_TMP_KEY_INIT_DH(s, bits) \
179182
ssl_tmp_key_init_dh(s, bits, SSL_TMP_KEY_DH_##bits)
180183

181-
static void ssl_tmp_keys_init(server_rec *s)
184+
static int ssl_tmp_keys_init(server_rec *s)
182185
{
183186
ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
184187
"Init: Generating temporary RSA private keys (512/1024 bits)");
185188

186-
MODSSL_TMP_KEY_INIT_RSA(s, 512);
187-
MODSSL_TMP_KEY_INIT_RSA(s, 1024);
189+
if (MODSSL_TMP_KEY_INIT_RSA(s, 512) ||
190+
MODSSL_TMP_KEY_INIT_RSA(s, 1024)) {
191+
return !OK;
192+
}
188193

189194
ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
190195
"Init: Generating temporary DH parameters (512/1024 bits)");
191196

192-
MODSSL_TMP_KEY_INIT_DH(s, 512);
193-
MODSSL_TMP_KEY_INIT_DH(s, 1024);
197+
if (MODSSL_TMP_KEY_INIT_DH(s, 512) ||
198+
MODSSL_TMP_KEY_INIT_DH(s, 1024)) {
199+
return !OK;
200+
}
201+
202+
return OK;
194203
}
195204

196205
/*
@@ -278,7 +287,9 @@ int ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
278287
*/
279288
ssl_pphrase_Handle(base_server, ptemp);
280289

281-
ssl_tmp_keys_init(base_server);
290+
if (ssl_tmp_keys_init(base_server)) {
291+
return !OK;
292+
}
282293

283294
/*
284295
* SSL external crypto device ("engine") support

0 commit comments

Comments
 (0)