Skip to content

Commit d999868

Browse files
authored
Merge pull request #121 from dgarske/tpm_nv
Fixes for TPM NV
2 parents 72d81cf + 9232bd8 commit d999868

2 files changed

Lines changed: 12 additions & 9 deletions

File tree

src/crypto.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1042,8 +1042,10 @@ CK_RV C_CreateObject(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate,
10421042
return rv;
10431043
}
10441044
rv = AddObject(session, object, pTemplate, ulCount, phObject);
1045-
if (rv != CKR_OK)
1045+
if (rv != CKR_OK) {
1046+
WP11_Session_RemoveObject(session, object);
10461047
WP11_Object_Free(object);
1048+
}
10471049

10481050
WOLFPKCS11_LEAVE("C_CreateObject", rv);
10491051
return rv;

src/internal.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,18 +1778,19 @@ static int wp11_storage_read_alloc_array(void* storage,
17781778

17791779
/* Read length of array. */
17801780
ret = wp11_storage_read_int(storage, len);
1781-
if (ret == 0) {
1781+
if (ret == 0 && *len > 0) {
17821782
/* Allocate buffer to hold data. */
17831783
*buffer = (unsigned char*)XMALLOC(*len, NULL, DYNAMIC_TYPE_TMP_BUFFER);
17841784
if (*buffer == NULL)
17851785
ret = MEMORY_E;
1786-
}
1787-
if (ret == 0) {
1788-
/* Read array data into allocated buffer. */
1789-
ret = wp11_storage_read(storage, *buffer, *len);
1790-
if (ret != 0) {
1791-
XFREE(*buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
1792-
*buffer = NULL;
1786+
1787+
if (ret == 0) {
1788+
/* Read array data into allocated buffer. */
1789+
ret = wp11_storage_read(storage, *buffer, *len);
1790+
if (ret != 0) {
1791+
XFREE(*buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
1792+
*buffer = NULL;
1793+
}
17931794
}
17941795
}
17951796

0 commit comments

Comments
 (0)