Skip to content

Commit d801dc1

Browse files
Merge pull request #6906 from SparkiDev/pkcs8_info_free_fix
ProcessBuffer: fix free call
2 parents 6d8136c + d87cd2c commit d801dc1

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

src/ssl.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7353,23 +7353,30 @@ int ProcessBuffer(WOLFSSL_CTX* ctx, const unsigned char* buff,
73537353
}
73547354
#endif /* WOLFSSL_ENCRYPTED_KEYS && !NO_PWDBASED */
73557355

7356-
#ifdef WOLFSSL_SMALL_STACK
7357-
XFREE(info, heap, DYNAMIC_TYPE_ENCRYPTEDINFO);
7358-
#endif
7359-
7360-
if (ret != 0)
7356+
if (ret != 0) {
7357+
#ifdef WOLFSSL_SMALL_STACK
7358+
XFREE(info, heap, DYNAMIC_TYPE_ENCRYPTEDINFO);
7359+
#endif
73617360
return ret;
7361+
}
73627362
if (keyFormat == 0) {
73637363
#ifdef OPENSSL_EXTRA
73647364
/* Reaching this point probably means that the
73657365
* decryption password is wrong */
73667366
if (info->passwd_cb)
73677367
EVPerr(0, EVP_R_BAD_DECRYPT);
73687368
#endif
7369+
#ifdef WOLFSSL_SMALL_STACK
7370+
XFREE(info, heap, DYNAMIC_TYPE_ENCRYPTEDINFO);
7371+
#endif
73697372
WOLFSSL_ERROR(WOLFSSL_BAD_FILE);
73707373
return WOLFSSL_BAD_FILE;
73717374
}
73727375

7376+
#ifdef WOLFSSL_SMALL_STACK
7377+
XFREE(info, heap, DYNAMIC_TYPE_ENCRYPTEDINFO);
7378+
#endif
7379+
73737380
(void)devId;
73747381
}
73757382
else if (type == CERT_TYPE) {

0 commit comments

Comments
 (0)