@@ -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