summaryrefslogtreecommitdiff
path: root/security/iaikpkcs11wrapper/files/patch-native_src_pkcs11wrapper.c
diff options
context:
space:
mode:
authorAlex Dupre <ale@FreeBSD.org>2011-11-13 21:07:33 +0000
committerAlex Dupre <ale@FreeBSD.org>2011-11-13 21:07:33 +0000
commit26ebd2017004eae715d8c50d9d0328eb97bfc99e (patch)
tree0cf8668d9e1f914a5719ca984d9d52b2cf6aa1db /security/iaikpkcs11wrapper/files/patch-native_src_pkcs11wrapper.c
parent- Update to 0.9.13 (diff)
Update to 1.2.18 release.
Feature safe: yes
Notes
Notes: svn path=/head/; revision=285720
Diffstat (limited to 'security/iaikpkcs11wrapper/files/patch-native_src_pkcs11wrapper.c')
-rw-r--r--security/iaikpkcs11wrapper/files/patch-native_src_pkcs11wrapper.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/security/iaikpkcs11wrapper/files/patch-native_src_pkcs11wrapper.c b/security/iaikpkcs11wrapper/files/patch-native_src_pkcs11wrapper.c
index df010e4cd5d1..bbf6cb1dc775 100644
--- a/security/iaikpkcs11wrapper/files/patch-native_src_pkcs11wrapper.c
+++ b/security/iaikpkcs11wrapper/files/patch-native_src_pkcs11wrapper.c
@@ -1,14 +1,14 @@
---- ../../src/pkcs11wrapper.c.orig 2008-07-24 12:20:36.000000000 +0200
-+++ ../../src/pkcs11wrapper.c 2011-04-12 10:53:02.000000000 +0200
-@@ -1134,6 +1134,7 @@
+--- ../../common/pkcs11wrapper.c.orig 2011-11-03 12:15:18.000000000 +0100
++++ ../../common/pkcs11wrapper.c 2011-11-13 21:55:57.000000000 +0100
+@@ -1258,6 +1258,7 @@
jobject jAttribute;
CK_RV rv;
CK_ULONG error = 0;
+ CK_BBOOL array = FALSE;
ModuleData *moduleData;
CK_FUNCTION_LIST_PTR ckpFunctions;
- moduleData = getModuleEntry(env, obj);
-@@ -1188,9 +1189,11 @@
+
+@@ -1328,9 +1329,11 @@
for (j=0; j<length; j++){
ckAttributeArray[j].pValue = NULL_PTR;
}
@@ -19,22 +19,22 @@
+ if (array == TRUE) {
// get ulValueLen of the attributes of a CKF_ARRAY_ATTRIBUTE if present
rv = (*ckpFunctions->C_GetAttributeValue)(ckSessionHandle, ckObjectHandle, ckpAttributes, ckAttributesLength);
- if(ckAssertReturnValueOK(env, rv) != CK_ASSERT_OK) {
-@@ -1202,6 +1205,7 @@
- free(ckpAttributes);
+ if(ckAssertReturnValueOK(env, rv, __FUNCTION__) != CK_ASSERT_OK) {
+@@ -1343,6 +1346,7 @@
+ TRACE0(tag_call, __FUNCTION__, "exiting ");
return ;
}
+ }
/* now, the ulValueLength field of each attribute should hold the exact buffer length needed
* to allocate the needed buffers accordingly
-@@ -4111,11 +4115,12 @@
+@@ -4474,11 +4478,12 @@
jpTemp = (jchar*) malloc((*ckpLength) * sizeof(jchar));
- if (jpTemp == NULL) { *ckpArray = NULL_PTR; throwOutOfMemoryError(env); return 1; }
+ if (jpTemp == NULL && (*ckpLength)!=0) { *ckpArray = NULL_PTR; throwOutOfMemoryError(env); return 1; }
(*env)->GetCharArrayRegion(env, jArray, 0, *ckpLength, jpTemp);
- *ckpArray = (CK_UTF8CHAR_PTR) malloc (*ckpLength * sizeof(CK_UTF8CHAR));
+ *ckpArray = (CK_UTF8CHAR_PTR) malloc ((*ckpLength + 1) * sizeof(CK_UTF8CHAR));
- if (*ckpArray == NULL) { free(jpTemp); throwOutOfMemoryError(env); return 2; }
+ if (*ckpArray == NULL && (*ckpLength)!=0) { free(jpTemp); throwOutOfMemoryError(env); return 2; }
for (i=0; i<(*ckpLength); i++) {
(*ckpArray)[i] = jCharToCKUTF8Char(jpTemp[i]);
}