@@ -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 }
0 commit comments