Bug 74343 - handle CRLs > 64K
git-svn-id: svn://10.0.0.236/branches/NSS_3_3_BRANCH@100807 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
/*
|
||||
* Permanent Certificate database handling code
|
||||
*
|
||||
* $Id: pcertdb.c,v 1.16 2001-07-11 23:57:01 relyea%netscape.com Exp $
|
||||
* $Id: pcertdb.c,v 1.16.2.1 2001-08-10 21:15:39 ddrinan%netscape.com Exp $
|
||||
*/
|
||||
#include "prtime.h"
|
||||
|
||||
@@ -873,14 +873,8 @@ DecodeDBCrlEntry(certDBEntryRevocation *entry, SECItem *dbentry)
|
||||
nnlen = ( ( dbentry->data[2] << 8 ) | dbentry->data[3] );
|
||||
if ( ( entry->derCrl.len + nnlen + DB_CRL_ENTRY_HEADER_LEN )
|
||||
!= dbentry->len) {
|
||||
/* CRL entry is greater than 64 K. Hack to make this continue to work */
|
||||
if (dbentry->len >= (0xffff - DB_CRL_ENTRY_HEADER_LEN) - nnlen) {
|
||||
entry->derCrl.len =
|
||||
(dbentry->len - DB_CRL_ENTRY_HEADER_LEN) - nnlen;
|
||||
} else {
|
||||
PORT_SetError(SEC_ERROR_BAD_DATABASE);
|
||||
goto loser;
|
||||
}
|
||||
PORT_SetError(SEC_ERROR_BAD_DATABASE);
|
||||
goto loser;
|
||||
}
|
||||
|
||||
/* copy the dercert */
|
||||
|
||||
Reference in New Issue
Block a user