fix: use of uninitialised value - return parameter (phObject) from C_CreateObject and C_GenerateKeyPair

(In function 'pkcs15_add_object': warning: unused parameter 'pHandle')

Example (C_CreateObject):
Breakpoint 3, C_CreateObject (hSession=134587040, pTemplate=0x8049160, ulCount=5, phObject=0xbff55560)
    at pkcs11-object.c:57
57              rv = sc_pkcs11_lock();
(gdb) x/x phObject
0xbff55560:     0xffffffff
(gdb) finish
0xb7f5c6c0 17:15:09.969 [opensc-pkcs11] framework-pkcs15.c:657:pkcs15_add_object: Setting object handle of 0x0 to 0x805ab80
Run till exit from #0  C_CreateObject (hSession=134587040, pTemplate=0x8049160, ulCount=5,
    phObject=0xbff55560) at pkcs11-object.c:57
0x080487a4 in main ()
Value returned is $1 = 0
(gdb) x/x 0xbff55560
0xbff55560:     0xffffffff
(gdb) c
Continuing.

Breakpoint 4, C_DestroyObject (hSession=134587040, hObject=4294967295) at pkcs11-object.c:106
106             rv = sc_pkcs11_lock();
(gdb) p/x hObject
$2 = 0xffffffff
(gdb) finish
Run till exit from #0  C_DestroyObject (hSession=134587040, hObject=4294967295) at pkcs11-object.c:106
0xb7f5c6c0 17:15:56.581 [opensc-pkcs11] pkcs11-object.c:110:C_DestroyObject: C_DestroyObject(hSession=0x805a2a0, hObject=0xffffffff)
0x080487cb in main ()
Value returned is $3 = 130



git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@3944 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
s 2010-01-27 14:50:35 +00:00
parent 66f9ccaa94
commit 723bcc41ff
1 changed files with 6 additions and 3 deletions

View File

@ -650,9 +650,12 @@ pkcs15_add_object(struct sc_pkcs11_slot *slot,
if (list_contains(&slot->objects, obj))
return;
list_append(&slot->objects, obj); // FIXME: pHandle too!
sc_debug(context, "Setting object handle of 0x%lx to 0x%lx", obj->base.handle, (CK_OBJECT_HANDLE)obj);
obj->base.handle = (CK_OBJECT_HANDLE)obj; // cast pointer to long
if (pHandle != NULL)
*pHandle = (CK_OBJECT_HANDLE)obj; /* cast pointer to long */
list_append(&slot->objects, obj);
sc_debug(context, "Setting object handle of 0x%lx to 0x%lx", obj->base.handle, (CK_OBJECT_HANDLE)obj);
obj->base.handle = (CK_OBJECT_HANDLE)obj; /* cast pointer to long */
obj->base.flags |= SC_PKCS11_OBJECT_SEEN;
obj->refcount++;