From 80ca168a6b656dfc7bcc0cc32e90391b66b6bf4c Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Sun, 6 May 2007 13:40:52 +0000 Subject: Complete trust for Mozilla. --- ckcapi-cert.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'ckcapi-cert.c') diff --git a/ckcapi-cert.c b/ckcapi-cert.c index 887fefb..501f2a2 100644 --- a/ckcapi-cert.c +++ b/ckcapi-cert.c @@ -405,7 +405,7 @@ cert_load_data(CkCapiSession* sess, CkCapiObject* obj, CkCapiObjectData* objdata * certificate object is a CERT_CONTEXT pointer. */ objdata->data = (void*)cert; - objdata->data_funcs = cert_objdata_vtable; + objdata->data_funcs = &cert_objdata_vtable; return CKR_OK; } @@ -448,7 +448,7 @@ register_cert_object(CkCapiSession* sess, const char* store, PCCERT_CONTEXT cert cobj->obj.id = 0; cobj->obj.unique_key = UNIQUE_KEY_AT(cobj, otype); cobj->obj.unique_len = UNIQUE_KEY_VAR_LEN(cobj, otype, cert_data, len); - cobj->obj.obj_funcs = cert_object_vtable; + cobj->obj.obj_funcs = &cert_object_vtable; /* Copy Issuer data in */ cobj->issuer.cbData = cert->pCertInfo->Issuer.cbData; @@ -481,6 +481,10 @@ clear_object_data_for_store(CkCapiSession* sess, CkCapiObject* obj, const char* store = (const char*) arg; CertObject *cobj = (CertObject*)obj; + // Is it one of ours? + if(obj->obj_funcs != &cert_object_vtable) + return; + if(strcmp(cobj->store, store) == 0) ckcapi_session_clear_object_data(sess, obj); } @@ -517,7 +521,7 @@ find_in_store(CkCapiSession* sess, const char* store_name, while((cert = CertEnumCertificatesInStore(store, cert)) != NULL) { objdata.data = (void*)cert; - objdata.data_funcs = cert_objdata_vtable; + objdata.data_funcs = &cert_objdata_vtable; if(ckcapi_object_data_match(&objdata, match, count)) { @@ -581,7 +585,7 @@ match_in_store(CkCapiSession* sess, const char* store_name, PCERT_INFO info, /* Match the certificate */ objdata.data = (void*)cert; - objdata.data_funcs = cert_objdata_vtable; + objdata.data_funcs = &cert_objdata_vtable; if(ckcapi_object_data_match(&objdata, match, count)) { -- cgit v1.2.3