return &obj->attributes[i];
item.item = &obj->attributes[i]; return item;
nss_ckmdSessionObject_GetAttribute(  NSSCKMDObject *mdObject,  NSSCKFWObject *fwObject,  NSSCKMDSession *mdSession,  NSSCKFWSession *fwSession,  NSSCKMDToken *mdToken,  NSSCKFWToken *fwToken,  NSSCKMDInstance *mdInstance,  NSSCKFWInstance *fwInstance,  CK_ATTRIBUTE_TYPE attribute,  CK_RV *pError){  nssCKMDSessionObject *obj;  CK_ULONG i;#ifdef NSSDEBUG  if( (CK_RV *)NULL == pError ) {    return 0;  }  *pError = nss_ckmdSessionObject_verifyPointer(mdObject);  if( CKR_OK != *pError ) {    return 0;  }  /* We could even check all the other arguments, for sanity. */#endif /* NSSDEBUG */  obj = (nssCKMDSessionObject *)mdObject->etc;  for( i = 0; i < obj->n; i++ ) {    if( attribute == obj->types[i] ) {      return &obj->attributes[i];    }  }  *pError = CKR_ATTRIBUTE_TYPE_INVALID;  return 0;}