Skip to content

Commit 50d60bf

Browse files
bandi13Andras Fekete
andauthored
Code sonar cleanup (#7782)
* Fix Warning 826814.9284764 * Fix Warning 826836.9285316 Co-authored-by: Andras Fekete <andras@wolfssl.com>
1 parent f4c16d2 commit 50d60bf

3 files changed

Lines changed: 36 additions & 5 deletions

File tree

src/ssl_load.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5095,18 +5095,18 @@ int wolfSSL_CTX_set_default_verify_paths(WOLFSSL_CTX* ctx)
50955095
{
50965096
int ret;
50975097
#ifdef XGETENV
5098-
char* certDir;
5099-
char* certFile;
5100-
word32 flags;
5098+
char* certDir = NULL;
5099+
char* certFile = NULL;
5100+
word32 flags = 0;
51015101
#elif !defined(WOLFSSL_SYS_CA_CERTS)
51025102
(void)ctx;
51035103
#endif
51045104

51055105
WOLFSSL_ENTER("wolfSSL_CTX_set_default_verify_paths");
51065106

51075107
#ifdef XGETENV
5108-
certDir = XGETENV("SSL_CERT_DIR");
5109-
certFile = XGETENV("SSL_CERT_FILE");
5108+
certDir = wc_strdup_ex(XGETENV("SSL_CERT_DIR"), DYNAMIC_TYPE_TMP_BUFFER);
5109+
certFile = wc_strdup_ex(XGETENV("SSL_CERT_FILE"), DYNAMIC_TYPE_TMP_BUFFER);
51105110
flags = WOLFSSL_LOAD_FLAG_PEM_CA_ONLY;
51115111

51125112
if ((certDir != NULL) || (certFile != NULL)) {
@@ -5152,6 +5152,10 @@ int wolfSSL_CTX_set_default_verify_paths(WOLFSSL_CTX* ctx)
51525152
#endif
51535153
}
51545154

5155+
#ifdef XGETENV
5156+
XFREE(certFile, NULL, DYNAMIC_TYPE_TMP_BUFFER);
5157+
XFREE(certDir, NULL, DYNAMIC_TYPE_TMP_BUFFER);
5158+
#endif
51555159
WOLFSSL_LEAVE("wolfSSL_CTX_set_default_verify_paths", ret);
51565160

51575161
return ret;
@@ -5267,6 +5271,7 @@ int wolfSSL_SetTmpDH(WOLFSSL* ssl, const unsigned char* p, int pSz,
52675271
pAlloc = (byte*)XMALLOC(pSz, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
52685272
gAlloc = (byte*)XMALLOC(gSz, ssl->heap, DYNAMIC_TYPE_PUBLIC_KEY);
52695273
if ((pAlloc == NULL) || (gAlloc == NULL)) {
5274+
/* Memory will be freed below in the (ret != 1) block */
52705275
ret = MEMORY_E;
52715276
}
52725277
}

wolfcrypt/src/wc_port.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,6 +1177,23 @@ int wc_strncasecmp(const char *s1, const char *s2, size_t n)
11771177
}
11781178
#endif /* USE_WOLF_STRNCASECMP */
11791179

1180+
#ifdef USE_WOLF_STRDUP
1181+
char* wc_strdup_ex(const char *src, int memType) {
1182+
char *ret = NULL;
1183+
int len = 0;
1184+
1185+
if (src) {
1186+
len = (int)XSTRLEN(src);
1187+
ret = (char*)XMALLOC(len, NULL, memType);
1188+
if (ret != NULL) {
1189+
XMEMCPY(ret, src, len);
1190+
}
1191+
}
1192+
1193+
return ret;
1194+
}
1195+
#endif
1196+
11801197
#ifdef WOLFSSL_ATOMIC_OPS
11811198

11821199
#ifdef HAVE_C___ATOMIC

wolfssl/wolfcrypt/types.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,6 +919,15 @@ typedef struct w64wrapper {
919919
WOLFSSL_API int wc_strncasecmp(const char *s1, const char *s2, size_t n);
920920
#endif
921921

922+
#if !defined(XSTRDUP) && !defined(USE_WOLF_STRDUP)
923+
#define USE_WOLF_STRDUP
924+
#endif
925+
#ifdef USE_WOLF_STRDUP
926+
WOLFSSL_LOCAL char* wc_strdup_ex(const char *src, int memType);
927+
#define wc_strdup(src) wc_strdup_ex(src, DYNAMIC_TYPE_TMP_BUFFER)
928+
#define XSTRDUP(src) wc_strdup(src)
929+
#endif
930+
922931
#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM)
923932
#ifndef XGETENV
924933
#ifdef NO_GETENV

0 commit comments

Comments
 (0)