1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-22 17:35:35 +03:00

resolved: log error messages for openssl/gnutls context creation

In https://bugzilla.redhat.com/show_bug.cgi?id=2322937 we're getting
an error message:
Okt 29 22:21:03 fedora systemd-resolved[29311]: Could not create manager: Cannot allocate memory
I expect that this actually comes from dnstls_manager_init(), the
openssl version. But without real logs it's hard to know for sure.

Use EIO instead of ENOMEM, because the problem is unlikely to be actually
related to memory.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2024-11-03 12:58:12 +01:00 committed by Lennart Poettering
parent a791fea0d6
commit ee95e86ae1
2 changed files with 9 additions and 4 deletions

View File

@ -236,7 +236,9 @@ int dnstls_manager_init(Manager *manager) {
r = gnutls_certificate_allocate_credentials(&manager->dnstls_data.cert_cred);
if (r < 0)
return -ENOMEM;
return log_warning_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
"Failed to allocate SSL credentials: %s",
gnutls_strerror(r));
r = gnutls_certificate_set_x509_system_trust(manager->dnstls_data.cert_cred);
if (r < 0)

View File

@ -394,11 +394,15 @@ int dnstls_manager_init(Manager *manager) {
manager->dnstls_data.ctx = SSL_CTX_new(TLS_client_method());
if (!manager->dnstls_data.ctx)
return -ENOMEM;
return log_warning_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
"Failed to create SSL context: %s",
ERR_error_string(ERR_get_error(), NULL));
r = SSL_CTX_set_min_proto_version(manager->dnstls_data.ctx, TLS1_2_VERSION);
if (r == 0)
return -EIO;
return log_warning_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
"Failed to set protocol version on SSL context: %s",
ERR_error_string(ERR_get_error(), NULL));
(void) SSL_CTX_set_options(manager->dnstls_data.ctx, SSL_OP_NO_COMPRESSION);
@ -407,7 +411,6 @@ int dnstls_manager_init(Manager *manager) {
return log_warning_errno(SYNTHETIC_ERRNO(EIO),
"Failed to load system trust store: %s",
ERR_error_string(ERR_get_error(), NULL));
return 0;
}