390527 - libpkix does not return a numeric error code. r=nelson

git-svn-id: svn://10.0.0.236/trunk@234079 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
alexei.volkov.bugs%sun.com 2007-09-06 20:48:58 +00:00
parent 76c9a9f4d2
commit 4883545f57
13 changed files with 86 additions and 181 deletions

View File

@ -259,7 +259,6 @@ custom_CertSelector_MatchCallback(
PKIX_List *certPolicies = NULL;
PKIX_List *quals = NULL;
PKIX_PL_CertPolicyInfo *policy = NULL;
PKIX_PL_String *errorDesc = NULL;
PKIX_Error *error = NULL;
PKIX_TEST_STD_VARS();
@ -290,18 +289,11 @@ custom_CertSelector_MatchCallback(
PKIX_TEST_DECREF_BC(certPolicies);
*pResult = PKIX_FALSE;
/* Policies extension but no Policy Qualifiers */
PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create
(PKIX_ESCASCII,
"Policies extension but no Policy Qualifiers",
0,
&errorDesc,
plContext));
PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create
(PKIX_CERTSELECTOR_ERROR,
NULL,
NULL,
errorDesc,
PKIX_TESTPOLICYEXTWITHNOPOLICYQUALIFIERS,
&error,
plContext));
@ -312,7 +304,6 @@ cleanup:
PKIX_TEST_DECREF_AC(certPolicies);
PKIX_TEST_DECREF_AC(policy);
PKIX_TEST_DECREF_AC(quals);
PKIX_TEST_DECREF_AC(errorDesc);
return(error);
}
@ -387,18 +378,11 @@ custom_CertSelector_MatchOIDCallback(
PKIX_TEST_DECREF_BC(certSelectorContext);
PKIX_TEST_DECREF_BC(certPolicies);
/* No matching Policy */
PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create
(PKIX_ESCASCII,
"No matching Policy",
0,
&errorDesc,
plContext));
PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create
PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create
(PKIX_CERTSELECTOR_ERROR,
NULL,
NULL,
errorDesc,
PKIX_TESTNOMATCHINGPOLICY,
&error,
plContext));

View File

@ -154,7 +154,6 @@ testCRLSelectorMatchCallback(
PKIX_UInt32 i = 0;
PKIX_Boolean result = PKIX_FALSE;
PKIX_Error *error = NULL;
PKIX_PL_String *textString = NULL;
char *errorText = "Not an error, CRL Select mismatch";
PKIX_TEST_STD_VARS();
@ -202,20 +201,12 @@ testCRLSelectorMatchCallback(
if (i == numIssuers-1) {
PKIX_TEST_EXPECT_NO_ERROR
(PKIX_PL_String_Create
(PKIX_ESCASCII,
(void *) errorText,
0,
&textString,
plContext));
PKIX_TEST_EXPECT_NO_ERROR
(PKIX_Error_Create
(0,
NULL,
NULL,
textString,
PKIX_TESTNOTANERRORCRLSELECTMISMATCH,
&error,
plContext));
@ -235,7 +226,6 @@ cleanup:
PKIX_TEST_DECREF_AC(crlIssuer);
PKIX_TEST_DECREF_AC(issuer);
PKIX_TEST_DECREF_AC(issuerList);
PKIX_TEST_DECREF_AC(textString);
PKIX_TEST_RETURN();

View File

@ -54,31 +54,13 @@ void createErrors(
PKIX_Error **error5,
PKIX_Error **error6,
PKIX_Error **error7,
char *descChar,
char *descChar2,
char *infoChar)
{
PKIX_PL_String *descString = NULL;
PKIX_PL_String *desc2String = NULL;
PKIX_PL_String *infoString = NULL;
PKIX_TEST_STD_VARS();
PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create(
PKIX_ESCASCII,
descChar,
PL_strlen(descChar),
&descString,
plContext));
PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create(
PKIX_ESCASCII,
descChar2,
PL_strlen(descChar2),
&desc2String,
plContext));
PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create(
PKIX_ESCASCII,
infoChar,
@ -86,15 +68,19 @@ void createErrors(
&infoString,
plContext));
PKIX_TEST_EXPECT_NO_ERROR
(PKIX_Error_Create
(PKIX_MEM_ERROR, NULL, NULL, desc2String, error2, plContext));
PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create
(PKIX_MEM_ERROR,
NULL,
NULL,
PKIX_TESTANOTHERERRORMESSAGE,
error2,
plContext));
PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create
(PKIX_OBJECT_ERROR,
*error2,
(PKIX_PL_Object*)infoString,
descString,
PKIX_TESTERRORMESSAGE,
error,
plContext));
@ -102,7 +88,7 @@ void createErrors(
(PKIX_OBJECT_ERROR,
*error2,
(PKIX_PL_Object*)infoString,
descString,
PKIX_TESTERRORMESSAGE,
error3,
plContext));
@ -110,7 +96,7 @@ void createErrors(
(PKIX_OBJECT_ERROR,
NULL,
(PKIX_PL_Object*)infoString,
NULL,
0,
error5,
plContext));
@ -118,7 +104,7 @@ void createErrors(
(PKIX_MEM_ERROR,
*error5,
(PKIX_PL_Object*)infoString,
NULL,
0,
error6,
plContext));
@ -126,14 +112,12 @@ void createErrors(
(PKIX_OBJECT_ERROR,
*error6,
(PKIX_PL_Object*)infoString,
NULL,
0,
error7,
plContext));
cleanup:
PKIX_TEST_DECREF_AC(descString);
PKIX_TEST_DECREF_AC(desc2String);
PKIX_TEST_DECREF_AC(infoString);
PKIX_TEST_RETURN();
@ -425,8 +409,6 @@ int test_error(int argc, char *argv[]) {
&error5,
&error6,
&error7,
descChar,
descChar2,
infoChar);
PKIX_TEST_EQ_HASH_TOSTR_DUP

View File

@ -43,6 +43,8 @@
* by defining PKIX_ERRORENTRY(x,y) #y and then listing thim within an array
* const char * const PKIX_ErrorText[]
*/
/* ALLOCERROR should always be the first */
PKIX_ERRORENTRY(ALLOCERROR,Allocation Error),
PKIX_ERRORENTRY(PKIXUNKNOWNERROR,PKIX uninitialized error code),
PKIX_ERRORENTRY(GETPKIXERRORCODEFAILED,Get PKIX error code failed),
PKIX_ERRORENTRY(ADDHEADERFUNCTIONNOTSUPPORTED,AddHeader function not supported),
@ -997,6 +999,11 @@ PKIX_ERRORENTRY(STRINGHASHCODEFAILED,pkix_pl_String_Hashcode failed),
PKIX_ERRORENTRY(SUBJALTNAMECHECKFAILED,Validation failed: SubjAltNamecheck failed),
PKIX_ERRORENTRY(TARGETCERTCHECKERINITIALIZEFAILED,pkix_TargetCertChecker_Initialize failed),
PKIX_ERRORENTRY(TARGETCERTCHECKERSTATECREATEFAILED,pkix_TargetCertCheckerState_Create failed),
PKIX_ERRORENTRY(TESTPOLICYEXTWITHNOPOLICYQUALIFIERS, Policies extension but no Policy Qualifiers),
PKIX_ERRORENTRY(TESTNOMATCHINGPOLICY, No Matching Policy),
PKIX_ERRORENTRY(TESTNOTANERRORCRLSELECTMISMATCH, Not an error CRL Select mismatch),
PKIX_ERRORENTRY(TESTERRORMESSAGE, Error Message),
PKIX_ERRORENTRY(TESTANOTHERERRORMESSAGE, Another Error Message),
PKIX_ERRORENTRY(TIMECONSUMEDEXCEEDSRESOURCELIMITS,Time consumed exceeds Resource Limits),
PKIX_ERRORENTRY(TOOLITTLEDATAINDERSEQUENCE,Too little data in DER Sequence),
PKIX_ERRORENTRY(TOOMUCHDATAINDERSEQUENCE,Too much data in DER Sequence),

View File

@ -497,10 +497,10 @@ PKIX_AddLogger(
*/
PKIX_Error *
PKIX_Error_Create(
PKIX_UInt32 errorCode,
PKIX_ERRORNUM errorCode,
PKIX_Error *cause,
PKIX_PL_Object *info,
PKIX_PL_String *desc,
PKIX_ERRSTRINGNUM descCode,
PKIX_Error **pError,
void *plContext);

View File

@ -2634,8 +2634,7 @@ subrErrorCleanup:
(subroutineErr, &pkixErrorCode, plContext);
if (pkixTempResult) return pkixTempResult;
if (pkixErrorCode == PKIX_FATAL_ERROR) {
PKIX_THROW
(FATAL, PKIX_ErrorText[PKIX_POLICYCHECKERERROR]);
PKIX_THROW(FATAL, PKIX_POLICYCHECKERERROR);
}
/*
* Abort policy processing, and then determine whether

View File

@ -69,8 +69,6 @@ pkix_Error_Equals(
PKIX_Error *secondError = NULL;
PKIX_Error *firstCause = NULL;
PKIX_Error *secondCause = NULL;
PKIX_PL_String *firstDesc = NULL;
PKIX_PL_String *secondDesc = NULL;
PKIX_PL_Object *firstInfo = NULL;
PKIX_PL_Object *secondInfo = NULL;
PKIX_UInt32 firstCode, secondCode, secondType;
@ -164,22 +162,8 @@ pkix_Error_Equals(
/* Compare descs */
firstDesc = firstError->desc;
secondDesc = secondError->desc;
if (((firstDesc != NULL) && (secondDesc == NULL))||
((firstDesc == NULL) && (secondDesc != NULL))) {
if (firstError->descCode != secondError->descCode) {
unequalFlag = PKIX_TRUE;
} else if ((firstDesc != NULL) && (secondDesc != NULL)) {
PKIX_CHECK(PKIX_PL_Object_Equals
((PKIX_PL_Object*) firstDesc,
(PKIX_PL_Object*) secondDesc,
&boolResult,
plContext),
PKIX_ERRORINRECURSIVEEQUALSCALL);
/* If the desc errors are not equal, return null */
if (boolResult == 0) unequalFlag = PKIX_TRUE;
}
/* If the unequalFlag was set, return false */
@ -214,8 +198,6 @@ pkix_Error_Destroy(
PKIX_DECREF(error->cause);
PKIX_DECREF(error->desc);
PKIX_DECREF(error->info);
cleanup:
@ -259,8 +241,8 @@ pkix_Error_ToString(
code = error->code;
/* Get the description string */
desc = error->desc;
PKIX_Error_GetDescription(error, &desc, plContext);
/* Get the cause */
cause = error->cause;
@ -325,7 +307,6 @@ pkix_Error_ToString(
plContext),
PKIX_STRINGCREATEFAILED);
/* Create the output String */
PKIX_CHECK(PKIX_PL_Sprintf
(pString,
@ -428,10 +409,10 @@ pkix_Error_RegisterSelf(void *plContext)
*/
PKIX_Error *
PKIX_Error_Create(
PKIX_UInt32 errorCode,
PKIX_ERRORNUM errorCode,
PKIX_Error *cause,
PKIX_PL_Object *info,
PKIX_PL_String *desc,
PKIX_ERRSTRINGNUM descCode,
PKIX_Error **pError,
void *plContext)
{
@ -462,7 +443,7 @@ PKIX_Error_Create(
tempCause = tempCause->cause) {
/* If we detect a loop, throw a new error */
if (tempCause == error) {
PKIX_THROW(ERROR, "Loop of error causes detected");
PKIX_THROW(ERROR, PKIX_LOOPOFERRORCAUSEDETECTED);
}
}
@ -472,8 +453,7 @@ PKIX_Error_Create(
PKIX_INCREF(info);
error->info = info;
PKIX_INCREF(desc);
error->desc = desc;
error->descCode = descCode;
*pError = error;
@ -497,6 +477,23 @@ PKIX_Error_GetErrorCode(
PKIX_RETURN(ERROR);
}
/*
* FUNCTION: PKIX_Error_GetErrorCode (see comments in pkix_util.h)
*/
PKIX_Error *
PKIX_Error_GetErrorMsgCode(
PKIX_Error *error,
PKIX_UInt32 *pCode,
void *plContext)
{
PKIX_ENTER(ERROR, "PKIX_Error_GetDescErrorCode");
PKIX_NULLCHECK_TWO(error, pCode);
*pCode = error->descCode;
PKIX_RETURN(ERROR);
}
/*
* FUNCTION: PKIX_Error_GetCause (see comments in pkix_util.h)
*/
@ -546,14 +543,18 @@ PKIX_Error_GetDescription(
PKIX_PL_String **pDesc,
void *plContext)
{
PKIX_PL_String *descString = NULL;
PKIX_ENTER(ERROR, "PKIX_Error_GetDescription");
PKIX_NULLCHECK_TWO(error, pDesc);
if (error != PKIX_ALLOC_ERROR()){
PKIX_INCREF(error->desc);
}
PKIX_PL_String_Create(PKIX_ESCASCII,
(void *)PKIX_ErrorText[error->descCode],
0,
&descString,
plContext);
*pDesc = error->desc;
*pDesc = descString;
PKIX_RETURN(ERROR);
}

View File

@ -51,10 +51,10 @@ extern "C" {
#endif
struct PKIX_ErrorStruct {
PKIX_UInt32 code;
PKIX_ERRORNUM code;
PKIX_Error *cause;
PKIX_PL_Object *info;
PKIX_PL_String *desc;
PKIX_ERRSTRINGNUM descCode;
};
/* see source file for function documentation */

View File

@ -48,9 +48,9 @@ const PKIX_StdVars zeroStdVars;
PKIX_Error *
PKIX_DoThrow(PKIX_StdVars * stdVars, PKIX_ERRORNUM errorCode,
const char * desc, void *plContext)
PKIX_ERRSTRINGNUM descNum, void *plContext)
{
pkixTempResult = (PKIX_Error*)pkix_Throw(errorCode, myFuncName, desc,
pkixTempResult = (PKIX_Error*)pkix_Throw(errorCode, myFuncName, descNum,
pkixErrorResult, &pkixReturnResult, plContext);
if (pkixErrorResult != PKIX_ALLOC_ERROR())
PKIX_DECREF(pkixErrorResult);
@ -66,7 +66,7 @@ PKIX_DoReturn(PKIX_StdVars * stdVars, PKIX_ERRORNUM errorCode,
PKIX_OBJECT_UNLOCK(lockedObject);
PKIX_MUTEX_UNLOCK(lockedMutex);
if ((pkixErrorReceived) || (pkixErrorResult))
return PKIX_DoThrow(stdVars, errorCode, pkixErrorMsg, plContext);
return PKIX_DoThrow(stdVars, errorCode, pkixErrMsgNum, plContext);
/* PKIX_DEBUG_EXIT(type); */
if (doLogger)
_PKIX_DEBUG_TRACE(pkixLoggersDebugTrace, "<<<", PKIX_LOGGER_LEVEL_TRACE);
@ -74,7 +74,7 @@ PKIX_DoReturn(PKIX_StdVars * stdVars, PKIX_ERRORNUM errorCode,
}
PKIX_Error *
PKIX_DoCheck(PKIX_StdVars * stdVars, int descNum, void *plContext)
PKIX_DoCheck(PKIX_StdVars * stdVars, PKIX_ERRSTRINGNUM descNum, void *plContext)
{
pkixTempResult =
PKIX_Error_GetErrorCode(pkixErrorResult, &pkixErrorCode, plContext);

View File

@ -161,17 +161,12 @@ PKIX_Error *
pkix_Throw(
PKIX_UInt32 errorCode,
const char *funcName,
const char *errorText,
PKIX_ERRSTRINGNUM errorTextCode,
PKIX_Error *cause,
PKIX_Error **pError,
void *plContext)
{
PKIX_PL_String *formatString = NULL;
PKIX_PL_String *funcNameString = NULL;
PKIX_PL_String *textString = NULL;
PKIX_PL_String *errorString = NULL;
PKIX_UInt32 causeCode;
char *format = NULL;
PKIX_ENTER(ERROR, "pkix_Throw");
PKIX_NULLCHECK_TWO(funcName, pError);
@ -190,44 +185,11 @@ pkix_Throw(
}
}
format = "%s: %s";
pkixTempResult = PKIX_PL_String_Create
(PKIX_ESCASCII, (void *)format, 0, &formatString, plContext);
if (pkixTempResult) goto cleanup;
pkixTempResult = PKIX_PL_String_Create
(PKIX_ESCASCII,
(void *)funcName,
0,
&funcNameString,
plContext);
if (pkixTempResult) goto cleanup;
pkixTempResult = PKIX_PL_String_Create
(PKIX_ESCASCII,
(void *)errorText,
0,
&textString,
plContext);
if (pkixTempResult) goto cleanup;
pkixTempResult = PKIX_PL_Sprintf
(&errorString,
plContext,
formatString,
funcNameString,
textString);
pkixTempResult = PKIX_Error_Create
(errorCode, cause, NULL, errorString, pError, plContext);
pkixTempResult = PKIX_Error_Create(errorCode, cause, NULL,
errorTextCode, pError, plContext);
cleanup:
PKIX_DECREF(errorString);
PKIX_DECREF(formatString);
PKIX_DECREF(funcNameString);
PKIX_DECREF(textString);
PKIX_DEBUG_EXIT(ERROR);
pkixErrorCode = 0;
return (pkixTempResult);

View File

@ -132,10 +132,12 @@ extern PKIX_Error * PKIX_DoReturn(PKIX_StdVars * stdVars,
extern PKIX_Error * PKIX_DoThrow(PKIX_StdVars * stdVars,
PKIX_ERRORNUM errorCode,
const char * desc, void * plContext);
PKIX_ERRSTRINGNUM descNum,
void * plContext);
extern PKIX_Error * PKIX_DoCheck(PKIX_StdVars * stdVars,
int descNum, void * plContext);
PKIX_ERRSTRINGNUM descNum,
void * plContext);
extern const PKIX_StdVars zeroStdVars;
@ -233,10 +235,10 @@ extern const PKIX_StdVars zeroStdVars;
} while (0)
#if defined(DEBUG) && !defined(DEBUG_nb95248)
#define PKIX_THROW(type, desc) \
#define PKIX_THROW(type, descNum) \
{ \
pkixTempResult = (PKIX_Error*)pkix_Throw \
(PKIX_ ## type ## _ERROR, myFuncName, desc, \
(PKIX_ ## type ## _ERROR, myFuncName, descNum, \
pkixErrorResult, &pkixReturnResult, plContext); \
if (pkixErrorResult != PKIX_ALLOC_ERROR()) \
PKIX_DECREF(pkixErrorResult); \
@ -245,8 +247,8 @@ extern const PKIX_StdVars zeroStdVars;
return pkixReturnResult; \
}
#else
#define PKIX_THROW(type, desc) \
return PKIX_DoThrow(&stdVars, (PKIX_ ## type ## _ERROR), desc, plContext);
#define PKIX_THROW(type, descNum) \
return PKIX_DoThrow(&stdVars, (PKIX_ ## type ## _ERROR), descNum, plContext);
#endif
@ -256,7 +258,7 @@ extern const PKIX_StdVars zeroStdVars;
PKIX_OBJECT_UNLOCK(lockedObject); \
PKIX_MUTEX_UNLOCK(lockedMutex); \
if ((pkixErrorReceived) || (pkixErrorResult)) \
PKIX_THROW(type, pkixErrorMsg); \
PKIX_THROW(type, pkixErrMsgNum); \
PKIX_DEBUG_EXIT(type); \
_PKIX_DEBUG_TRACE(pkixLoggersDebugTrace, "<<<", PKIX_LOGGER_LEVEL_TRACE); \
return NULL; \
@ -272,7 +274,7 @@ extern const PKIX_StdVars zeroStdVars;
PKIX_OBJECT_UNLOCK(lockedObject); \
PKIX_MUTEX_UNLOCK(lockedMutex); \
if ((pkixErrorReceived) || (pkixErrorResult)) \
PKIX_THROW(type, pkixErrorMsg); \
PKIX_THROW(type, pkixErrMsgNum); \
PKIX_DEBUG_EXIT(type); \
return NULL; \
}
@ -292,6 +294,7 @@ extern const PKIX_StdVars zeroStdVars;
(pkixErrorResult, &pkixErrorCode, plContext); \
if (pkixTempResult) \
return pkixTempResult; \
pkixErrMsgNum = descNum; \
pkixErrorMsg = PKIX_ErrorText[descNum]; \
if (pkixErrorCode == PKIX_FATAL_ERROR) \
PKIX_RETURN(FATAL); \
@ -322,6 +325,7 @@ extern const PKIX_StdVars zeroStdVars;
if (pkixTempResult) \
return pkixTempResult; \
if (pkixErrorCode == PKIX_FATAL_ERROR){ \
pkixErrMsgNum = descNum; \
pkixErrorMsg = PKIX_ErrorText[descNum]; \
PKIX_RETURN(FATAL); \
} \
@ -336,6 +340,7 @@ extern const PKIX_StdVars zeroStdVars;
{ \
PKIX_LOG_ERROR(descNum) \
pkixErrorReceived = PKIX_TRUE; \
pkixErrMsgNum = descNum; \
pkixErrorMsg = PKIX_ErrorText[descNum]; \
goto cleanup; \
}
@ -408,7 +413,7 @@ extern const PKIX_StdVars zeroStdVars;
{ \
pkixTempResult = (PKIX_Error*)pkix_Throw \
(PKIX_ ## type ## _ERROR, myFuncName, \
PKIX_ErrorText[descNum], NULL, &error, plContext); \
descNum, NULL, &error, plContext); \
if (pkixTempResult) \
error = pkixTempResult; \
}
@ -1385,7 +1390,7 @@ PKIX_Error *
pkix_Throw(
PKIX_UInt32 code,
const char *funcName,
const char *errorText,
PKIX_ERRSTRINGNUM errorTextCode,
PKIX_Error *cause,
PKIX_Error **pError,
void *plContext);

View File

@ -55,30 +55,6 @@ PRLock *classTableLock;
* IncRef, DecRef, and Settor functions cannot be called.
*/
/*
* This data looks like a UTF-16 string of "PKIX_ALLOC_ERROR".
* It is used to create a static PKIX_PL_String object, pkix_Alloc_Error_desc.
*/
static const char pkix_Alloc_Error_Msg[32] =
{
0, 'P', 0, 'K', 0, 'I', 0, 'X',
0, ' ',
0, 'A', 0, 'L', 0, 'L', 0, 'O', 0, 'C',
0, ' ',
0, 'E', 0, 'R', 0, 'R', 0, 'O', 0, 'R'
};
/*
* This is raw data laid out to look like a PKIX_PL_String in memory
* XXX If PKIX_PL_StringStruct is changed, this will break.
*/
static PKIX_PL_String pkix_Alloc_Error_Desc = {
(void *)&pkix_Alloc_Error_Msg, /* void *utf16String */
(PKIX_UInt32)32, /* PKIX_UInt32 utf16Length */
(char *)NULL, /* char *escAsciiString */
(PKIX_UInt32)0 /* PKIX_UInt32 escAsciiLength */
};
/* Keep this structure definition here for its is used only once here */
struct PKIX_Alloc_Error_ObjectStruct {
PKIX_PL_Object header;
@ -97,10 +73,10 @@ static PKIX_Alloc_Error_Object pkix_Alloc_Error_Data = {
(PKIX_UInt32)0, /* PKIX_UInt32 hashcode */
(PKIX_Boolean)PKIX_FALSE, /* PKIX_Boolean hashcodeCached */
}, {
PKIX_FATAL_ERROR, /* PKIX_UInt32 code */
(PKIX_ERRORNUM)PKIX_FATAL_ERROR,/* PKIX_UInt32 code */
(PKIX_Error *)0, /* PKIX_Error *cause */
(PKIX_PL_Object *)0, /* PKIX_PL_Object *info */
&pkix_Alloc_Error_Desc /* PKIX_PL_String *desc */
(PKIX_ERRSTRINGNUM)0, /* PKIX_ERRSTRINGNUM descCode; */
}
};

View File

@ -47,6 +47,7 @@
static PKIX_UInt32 refCountTotal = 0;
/* --Class-Table-Initializers------------------------------------ */
/*
@ -765,9 +766,7 @@ PKIX_PL_Object_IncRef(
PKIX_ERRORUNLOCKINGOBJECT);
if (refCountError) {
PKIX_THROW
(FATAL,
PKIX_ErrorText[PKIX_OBJECTWITHNONPOSITIVEREFERENCES]);
PKIX_THROW(FATAL, PKIX_OBJECTWITHNONPOSITIVEREFERENCES);
}
cleanup: