зеркало из https://github.com/mozilla/gecko-dev.git
Fix for 54061 . Return SEC_ERROR_INVALID_ARGS and remove assertions . r=wtc,misterssl
This commit is contained in:
Родитель
62af343f11
Коммит
3331d24ed7
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче