]> granicus.if.org Git - apache/commitdiff
ssl_stapling_init_cert: do not return success when no responder URI is found
authorKaspar Brand <kbrand@apache.org>
Mon, 21 Apr 2014 06:54:41 +0000 (06:54 +0000)
committerKaspar Brand <kbrand@apache.org>
Mon, 21 Apr 2014 06:54:41 +0000 (06:54 +0000)
stapling_renew_response: abort early (before apr_uri_parse) if ocspuri is empty

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1588853 13f79535-47bb-0310-9956-ffa450edef68

docs/log-message-tags/next-number
modules/ssl/ssl_util_stapling.c

index 7dabb45b397de908154cd149c62dc8e7527b7c1a..f76b2789139b59183a59da352741f3a6e7cd8a9c 100644 (file)
@@ -1 +1 @@
-2621
+2622
index 7633648ce2df823d180120cdc5eb62fade6c6aa7..2dc8fceaaa8a2419a627c0e8d1d946b06ea0fc37 100644 (file)
@@ -145,14 +145,15 @@ int ssl_stapling_init_cert(server_rec *s, modssl_ctx_t *mctx, X509 *x)
     X509_digest(x, EVP_sha1(), cinf->idx, NULL);
 
     aia = X509_get1_ocsp(x);
-    if (aia)
+    if (aia) {
         cinf->uri = sk_OPENSSL_STRING_pop(aia);
+        X509_email_free(aia);
+    }
     if (!cinf->uri && !mctx->stapling_force_url) {
         ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(02218)
                      "ssl_stapling_init_cert: no responder URL");
+        return 0;
     }
-    if (aia)
-        X509_email_free(aia);
     return 1;
 }
 
@@ -403,6 +404,13 @@ static BOOL stapling_renew_response(server_rec *s, modssl_ctx_t *mctx, SSL *ssl,
     else
         ocspuri = cinf->uri;
 
+    if (!ocspuri) {
+        ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(02621)
+                     "stapling_renew_response: no uri for responder");
+        rv = FALSE;
+        goto done;
+    }
+
     /* Create a temporary pool to constrain memory use */
     apr_pool_create(&vpool, conn->pool);