pkcs11-tool: no error when getting sensitive attr. value
resolves PR #807
This commit is contained in:
parent
3dbcc0b035
commit
76e0e19460
@ -2645,20 +2645,27 @@ get##ATTR(CK_SESSION_HANDLE sess, CK_OBJECT_HANDLE obj) \
|
|||||||
static TYPE * \
|
static TYPE * \
|
||||||
get##ATTR(CK_SESSION_HANDLE sess, CK_OBJECT_HANDLE obj, CK_ULONG_PTR pulCount) \
|
get##ATTR(CK_SESSION_HANDLE sess, CK_OBJECT_HANDLE obj, CK_ULONG_PTR pulCount) \
|
||||||
{ \
|
{ \
|
||||||
CK_ATTRIBUTE attr = { CKA_##ATTR, NULL, 0 }; \
|
CK_ATTRIBUTE attr = { CKA_##ATTR, NULL, 0 }; \
|
||||||
CK_RV rv; \
|
CK_RV rv; \
|
||||||
\
|
if (pulCount) \
|
||||||
rv = p11->C_GetAttributeValue(sess, obj, &attr, 1); \
|
*pulCount = 0; \
|
||||||
if (rv == CKR_OK) { \
|
rv = p11->C_GetAttributeValue(sess, obj, &attr, 1); \
|
||||||
if (!(attr.pValue = calloc(1, attr.ulValueLen + 1))) \
|
if (rv == CKR_OK) { \
|
||||||
util_fatal("out of memory in get" #ATTR ": %m"); \
|
if (attr.ulValueLen == (CK_ULONG)(-1)) \
|
||||||
rv = p11->C_GetAttributeValue(sess, obj, &attr, 1); \
|
return NULL; \
|
||||||
if (pulCount) \
|
if (!(attr.pValue = calloc(1, attr.ulValueLen + 1))) \
|
||||||
*pulCount = attr.ulValueLen / sizeof(TYPE); \
|
util_fatal("out of memory in get" #ATTR ": %m"); \
|
||||||
} else {\
|
rv = p11->C_GetAttributeValue(sess, obj, &attr, 1); \
|
||||||
p11_warn("C_GetAttributeValue(" #ATTR ")", rv); \
|
if (attr.ulValueLen == (CK_ULONG)(-1)) { \
|
||||||
} \
|
free(attr.pValue); \
|
||||||
return (TYPE *) attr.pValue; \
|
return NULL; \
|
||||||
|
} \
|
||||||
|
if (pulCount) \
|
||||||
|
*pulCount = attr.ulValueLen / sizeof(TYPE); \
|
||||||
|
} else { \
|
||||||
|
p11_warn("C_GetAttributeValue(" #ATTR ")", rv); \
|
||||||
|
} \
|
||||||
|
return (TYPE *) attr.pValue; \
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user