fixes, coddling, and suppressions for clang-tidy complaints:

examples/pem/pem.c: fix stdio stream leaks.

src/ssl.c and src/ssl_load.c: suppress concurrency-mt-unsafe around getenv().  getenv() is threadsafe as long as no threads putenv() or setenv().

wolfssl/openssl/asn1.h: add parentheses to fix bugprone-macro-parentheses in ASN1_EX_TEMPLATE_TYPE(), and suppress misfiring bugprone-macro-parentheses around IMPLEMENT_ASN1_FUNCTIONS().
This commit is contained in:
Daniel Pouzzner
2024-09-30 23:19:49 -05:00
parent ee7f02bbd6
commit 65853a41b9
4 changed files with 21 additions and 8 deletions

View File

@@ -23984,7 +23984,7 @@ int wolfSSL_RAND_seed(const void* seed, int len)
*/
const char* wolfSSL_RAND_file_name(char* fname, unsigned long len)
{
#if !defined(NO_FILESYSTEM) && defined(XGETENV)
#if !defined(NO_FILESYSTEM) && defined(XGETENV) && !defined(NO_GETENV)
char* rt;
WOLFSSL_ENTER("wolfSSL_RAND_file_name");
@@ -23995,6 +23995,7 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len)
XMEMSET(fname, 0, len);
/* // NOLINTBEGIN(concurrency-mt-unsafe) */
if ((rt = XGETENV("RANDFILE")) != NULL) {
if (len > XSTRLEN(rt)) {
XMEMCPY(fname, rt, XSTRLEN(rt));
@@ -24004,6 +24005,7 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len)
rt = NULL;
}
}
/* // NOLINTEND(concurrency-mt-unsafe) */
/* $RANDFILE was not set or is too large, check $HOME */
if (rt == NULL) {
@@ -24011,6 +24013,7 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len)
WOLFSSL_MSG("Environment variable RANDFILE not set");
/* // NOLINTBEGIN(concurrency-mt-unsafe) */
if ((rt = XGETENV("HOME")) == NULL) {
#ifdef XALTHOMEVARNAME
if ((rt = XGETENV(XALTHOMEVARNAME)) == NULL) {
@@ -24023,6 +24026,7 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len)
return NULL;
#endif
}
/* // NOLINTEND(concurrency-mt-unsafe) */
if (len > XSTRLEN(rt) + XSTRLEN(ap)) {
fname[0] = '\0';

View File

@@ -5099,7 +5099,7 @@ int wolfSSL_CTX_use_RSAPrivateKey(WOLFSSL_CTX* ctx, WOLFSSL_RSA* rsa)
int wolfSSL_CTX_set_default_verify_paths(WOLFSSL_CTX* ctx)
{
int ret;
#ifdef XGETENV
#if defined(XGETENV) && !defined(NO_GETENV)
char* certDir = NULL;
char* certFile = NULL;
word32 flags = 0;
@@ -5109,7 +5109,8 @@ int wolfSSL_CTX_set_default_verify_paths(WOLFSSL_CTX* ctx)
WOLFSSL_ENTER("wolfSSL_CTX_set_default_verify_paths");
#ifdef XGETENV
#if defined(XGETENV) && !defined(NO_GETENV)
/* // NOLINTBEGIN(concurrency-mt-unsafe) */
certDir = wc_strdup_ex(XGETENV("SSL_CERT_DIR"), DYNAMIC_TYPE_TMP_BUFFER);
certFile = wc_strdup_ex(XGETENV("SSL_CERT_FILE"), DYNAMIC_TYPE_TMP_BUFFER);
flags = WOLFSSL_LOAD_FLAG_PEM_CA_ONLY;
@@ -5133,6 +5134,7 @@ int wolfSSL_CTX_set_default_verify_paths(WOLFSSL_CTX* ctx)
ret = 0;
}
}
/* // NOLINTEND(concurrency-mt-unsafe) */
else
#endif
@@ -5157,7 +5159,7 @@ int wolfSSL_CTX_set_default_verify_paths(WOLFSSL_CTX* ctx)
#endif
}
#ifdef XGETENV
#if defined(XGETENV) && !defined(NO_GETENV)
XFREE(certFile, NULL, DYNAMIC_TYPE_TMP_BUFFER);
XFREE(certDir, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif