diff options
author | Tobias Heider <tobias.heider@canonical.com> | 2022-03-13 23:58:42 +0100 |
---|---|---|
committer | Tobias Heider <tobias.heider@canonical.com> | 2022-03-14 00:10:00 +0100 |
commit | 321aa0e6506ae59c040efddf49e6236c79387331 (patch) | |
tree | 8931207d435ca3da0898960c17e1fee769378e66 /extra/gnutls_openssl.c | |
parent | 3842e1a9d27227f67627cf407f3238b959bde58e (diff) | |
download | gnutls-321aa0e6506ae59c040efddf49e6236c79387331.tar.gz |
Handle all cases of calloc returning NULL.
Signed-off-by: Tobias Heider <tobias.heider@canonical.com>
Diffstat (limited to 'extra/gnutls_openssl.c')
-rw-r--r-- | extra/gnutls_openssl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/extra/gnutls_openssl.c b/extra/gnutls_openssl.c index aa5a0e708b..ba53733e1a 100644 --- a/extra/gnutls_openssl.c +++ b/extra/gnutls_openssl.c @@ -70,6 +70,9 @@ SSL_CTX *SSL_CTX_new(SSL_METHOD * method) SSL_CTX *ctx; ctx = (SSL_CTX *) calloc(1, sizeof(SSL_CTX)); + if (!ctx) + return NULL; + ctx->method = method; return ctx; @@ -357,6 +360,9 @@ int SSL_connect(SSL * ssl) } store = (X509_STORE_CTX *) calloc(1, sizeof(X509_STORE_CTX)); + if (!store) + return 0; + store->ssl = ssl; store->cert_list = gnutls_certificate_get_peers(ssl->gnutls_state, &cert_list_size); @@ -406,6 +412,8 @@ int SSL_accept(SSL * ssl) } store = (X509_STORE_CTX *) calloc(1, sizeof(X509_STORE_CTX)); + if (!store) + return 0; store->ssl = ssl; store->cert_list = gnutls_certificate_get_peers(ssl->gnutls_state, &cert_list_size); @@ -655,6 +663,8 @@ X509_NAME *X509_get_subject_name(const X509 * cert) { gnutls_x509_dn *dn; dn = (gnutls_x509_dn *) calloc(1, sizeof(gnutls_x509_dn)); + if (!dn) + return (NULL); if (gnutls_x509_extract_certificate_dn(cert, dn) < 0) { free(dn); return NULL; @@ -666,6 +676,8 @@ X509_NAME *X509_get_issuer_name(const X509 * cert) { gnutls_x509_dn *dn; dn = (gnutls_x509_dn *) calloc(1, sizeof(gnutls_x509_dn)); + if (!dn) + return (NULL); if (gnutls_x509_extract_certificate_issuer_dn(cert, dn) < 0) { free(dn); return NULL; |