Fix for 54061 . Return SEC_ERROR_INVALID_ARGS and remove assertions . r=wtc,misterssl

This commit is contained in:
jpierre%netscape.com 2003-12-12 21:42:02 +00:00
Родитель 62af343f11
Коммит 3331d24ed7
2 изменённых файлов: 29 добавлений и 64 удалений

Просмотреть файл

@ -34,7 +34,7 @@
/*
* CMS signedData methods.
*
* $Id: cmssigdata.c,v 1.22 2003/12/04 00:36:47 nelsonb%netscape.com Exp $
* $Id: cmssigdata.c,v 1.23 2003/12/12 21:42:02 jpierre%netscape.com Exp $
*/
#include "cmslocal.h"
@ -54,9 +54,8 @@ NSS_CMSSignedData_Create(NSSCMSMessage *cmsg)
NSSCMSSignedData *sigd;
PLArenaPool *poolp;
PORT_Assert(cmsg);
if (!cmsg) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return NULL;
}
@ -138,9 +137,8 @@ NSS_CMSSignedData_Encode_BeforeStart(NSSCMSSignedData *sigd)
int n, i;
PLArenaPool *poolp;
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -210,9 +208,8 @@ loser:
SECStatus
NSS_CMSSignedData_Encode_BeforeData(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
/* set up the digests */
@ -249,9 +246,8 @@ NSS_CMSSignedData_Encode_AfterData(NSSCMSSignedData *sigd)
CERTCertificateList *certlist;
extern const SEC_ASN1Template NSSCMSSignerInfoTemplate[];
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -384,9 +380,8 @@ loser:
SECStatus
NSS_CMSSignedData_Decode_BeforeData(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
/* set up the digests */
@ -408,9 +403,8 @@ NSS_CMSSignedData_Decode_AfterData(NSSCMSSignedData *sigd)
{
SECStatus rv = SECSuccess;
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -434,9 +428,8 @@ NSS_CMSSignedData_Decode_AfterEnd(NSSCMSSignedData *sigd)
NSSCMSSignerInfo **signerinfos = NULL;
int i;
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -458,9 +451,8 @@ NSS_CMSSignedData_Decode_AfterEnd(NSSCMSSignedData *sigd)
NSSCMSSignerInfo **
NSS_CMSSignedData_GetSignerInfos(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return NULL;
}
return sigd->signerInfos;
@ -469,9 +461,8 @@ NSS_CMSSignedData_GetSignerInfos(NSSCMSSignedData *sigd)
int
NSS_CMSSignedData_SignerInfoCount(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return 0;
}
return NSS_CMSArray_Count((void **)sigd->signerInfos);
@ -480,9 +471,8 @@ NSS_CMSSignedData_SignerInfoCount(NSSCMSSignedData *sigd)
NSSCMSSignerInfo *
NSS_CMSSignedData_GetSignerInfo(NSSCMSSignedData *sigd, int i)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return NULL;
}
return sigd->signerInfos[i];
@ -494,9 +484,8 @@ NSS_CMSSignedData_GetSignerInfo(NSSCMSSignedData *sigd, int i)
SECAlgorithmID **
NSS_CMSSignedData_GetDigestAlgs(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return NULL;
}
return sigd->digestAlgorithms;
@ -508,9 +497,8 @@ NSS_CMSSignedData_GetDigestAlgs(NSSCMSSignedData *sigd)
NSSCMSContentInfo *
NSS_CMSSignedData_GetContentInfo(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return NULL;
}
return &(sigd->contentInfo);
@ -522,9 +510,8 @@ NSS_CMSSignedData_GetContentInfo(NSSCMSSignedData *sigd)
SECItem **
NSS_CMSSignedData_GetCertificateList(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return NULL;
}
return sigd->rawCerts;
@ -543,9 +530,8 @@ NSS_CMSSignedData_ImportCerts(NSSCMSSignedData *sigd, CERTCertDBHandle *certdb,
int i;
PRTime now;
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -668,9 +654,8 @@ NSS_CMSSignedData_VerifySignerInfo(NSSCMSSignedData *sigd, int i,
SECOidTag oidTag;
SECStatus rv;
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -741,9 +726,8 @@ NSS_CMSSignedData_VerifyCertsOnly(NSSCMSSignedData *sigd,
PRBool
NSS_CMSSignedData_HasDigests(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return PR_FALSE;
}
return (sigd->digests != NULL);
@ -754,10 +738,8 @@ NSS_CMSSignedData_AddCertList(NSSCMSSignedData *sigd, CERTCertificateList *certl
{
SECStatus rv;
PORT_Assert(sigd);
PORT_Assert(certlist);
if (!sigd || !certlist) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -779,10 +761,8 @@ NSS_CMSSignedData_AddCertChain(NSSCMSSignedData *sigd, CERTCertificate *cert)
usage = certUsageEmailSigner;
PORT_Assert(cert);
PORT_Assert(sigd);
if (!sigd || !cert) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -802,10 +782,8 @@ NSS_CMSSignedData_AddCertificate(NSSCMSSignedData *sigd, CERTCertificate *cert)
CERTCertificate *c;
SECStatus rv;
PORT_Assert(cert);
PORT_Assert(sigd);
if (!sigd || !cert) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -817,9 +795,8 @@ NSS_CMSSignedData_AddCertificate(NSSCMSSignedData *sigd, CERTCertificate *cert)
PRBool
NSS_CMSSignedData_ContainsCertsOrCrls(NSSCMSSignedData *sigd)
{
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return PR_FALSE;
}
if (sigd->rawCerts != NULL && sigd->rawCerts[0] != NULL)
@ -839,10 +816,8 @@ NSS_CMSSignedData_AddSignerInfo(NSSCMSSignedData *sigd,
SECOidTag digestalgtag;
PLArenaPool *poolp;
PORT_Assert(signerinfo);
PORT_Assert(sigd);
if (!sigd || !signerinfo) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -891,11 +866,8 @@ NSS_CMSSignedData_SetDigests(NSSCMSSignedData *sigd,
{
int cnt, i, idx;
PORT_Assert(digestalgs);
PORT_Assert(digests);
PORT_Assert(sigd);
if (!sigd || !digestalgs || !digests) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -955,9 +927,8 @@ NSS_CMSSignedData_SetDigestValue(NSSCMSSignedData *sigd,
void *mark;
int n, cnt;
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -1014,10 +985,8 @@ NSS_CMSSignedData_AddDigest(PRArenaPool *poolp,
SECAlgorithmID *digestalg;
void *mark;
PORT_Assert(poolp);
PORT_Assert(sigd);
if (!sigd || !poolp) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@ -1051,9 +1020,8 @@ NSS_CMSSignedData_GetDigestValue(NSSCMSSignedData *sigd, SECOidTag digestalgtag)
{
int n;
PORT_Assert(sigd);
if (!sigd) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return NULL;
}
@ -1089,10 +1057,8 @@ NSS_CMSSignedData_CreateCertsOnly(NSSCMSMessage *cmsg, CERTCertificate *cert, PR
PLArenaPool *poolp;
SECStatus rv;
PORT_Assert(cmsg);
PORT_Assert(cert);
if (!cmsg || !cert) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return NULL;
}

Просмотреть файл

@ -34,7 +34,7 @@
/*
* CMS signerInfo methods.
*
* $Id: cmssiginfo.c,v 1.22 2003/12/04 00:29:31 nelsonb%netscape.com Exp $
* $Id: cmssiginfo.c,v 1.23 2003/12/12 21:42:02 jpierre%netscape.com Exp $
*/
#include "cmslocal.h"
@ -526,9 +526,8 @@ NSS_CMSSignerInfo_GetDigestAlgTag(NSSCMSSignerInfo *signerinfo)
{
SECOidData *algdata;
PORT_Assert(signerinfo);
if (!signerinfo) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SEC_OID_UNKNOWN;
}