[Privoxy-commits] [privoxy] 17/26: enforce_sane_certificate_state(): Also deal with certificates without key
User Git
git at git.privoxy.org
Mon Jan 18 13:32:25 UTC 2021
This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository privoxy.
commit 8758d26b120e91b2ab6598dc5dada5d6a8e9d394
Author: Fabian Keil <fk at fabiankeil.de>
AuthorDate: Mon Jan 18 03:49:39 2021 +0100
enforce_sane_certificate_state(): Also deal with certificates without key
... by removing the certificate.
---
ssl_common.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/ssl_common.c b/ssl_common.c
index 6d2e11f6..486b9aa5 100644
--- a/ssl_common.c
+++ b/ssl_common.c
@@ -717,7 +717,10 @@ extern int host_is_ip_address(const char *host)
*********************************************************************/
extern int enforce_sane_certificate_state(const char *certificate, const char *key)
{
- if (file_exists(certificate) == 0 && file_exists(key) == 1)
+ const int certificate_exists = file_exists(certificate);
+ const int key_exists = file_exists(key);
+
+ if (!certificate_exists && key_exists)
{
log_error(LOG_LEVEL_ERROR,
"A website key already exists but there's no matching certificate. "
@@ -729,6 +732,18 @@ extern int enforce_sane_certificate_state(const char *certificate, const char *k
return -1;
}
}
+ if (certificate_exists && !key_exists)
+ {
+ log_error(LOG_LEVEL_ERROR,
+ "A certificate exists but there's no matching key. "
+ "Removing %s before creating a new key and certificate.", certificate);
+ if (unlink(certificate))
+ {
+ log_error(LOG_LEVEL_ERROR, "Failed to unlink %s: %E", certificate);
+
+ return -1;
+ }
+ }
return 0;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Privoxy-commits
mailing list