| Index: nss/mozilla/security/nss/lib/certhigh/certreq.c
 | 
| ===================================================================
 | 
| --- nss/mozilla/security/nss/lib/certhigh/certreq.c	(revision 61548)
 | 
| +++ nss/mozilla/security/nss/lib/certhigh/certreq.c	(working copy)
 | 
| @@ -94,35 +94,39 @@
 | 
|  
 | 
|      c = (CERTCertificate *)PORT_ArenaZAlloc(arena, sizeof(CERTCertificate));
 | 
|      
 | 
| -    if (c) {
 | 
| -	c->referenceCount = 1;
 | 
| -	c->arena = arena;
 | 
| +    if (!c) {
 | 
| +	PORT_FreeArena(arena, PR_FALSE);
 | 
| +	return 0;
 | 
| +    }
 | 
|  
 | 
| -	/*
 | 
| -	 * Default is a plain version 1.
 | 
| -	 * If extensions are added, it will get changed as appropriate.
 | 
| -	 */
 | 
| -	rv = DER_SetUInteger(arena, &c->version, SEC_CERTIFICATE_VERSION_1);
 | 
| -	if (rv) goto loser;
 | 
| +    c->referenceCount = 1;
 | 
| +    c->arena = arena;
 | 
|  
 | 
| -	rv = DER_SetUInteger(arena, &c->serialNumber, serialNumber);
 | 
| -	if (rv) goto loser;
 | 
| +    /*
 | 
| +     * Default is a plain version 1.
 | 
| +     * If extensions are added, it will get changed as appropriate.
 | 
| +     */
 | 
| +    rv = DER_SetUInteger(arena, &c->version, SEC_CERTIFICATE_VERSION_1);
 | 
| +    if (rv) goto loser;
 | 
|  
 | 
| -	rv = CERT_CopyName(arena, &c->issuer, issuer);
 | 
| -	if (rv) goto loser;
 | 
| +    rv = DER_SetUInteger(arena, &c->serialNumber, serialNumber);
 | 
| +    if (rv) goto loser;
 | 
|  
 | 
| -	rv = CERT_CopyValidity(arena, &c->validity, validity);
 | 
| -	if (rv) goto loser;
 | 
| +    rv = CERT_CopyName(arena, &c->issuer, issuer);
 | 
| +    if (rv) goto loser;
 | 
|  
 | 
| -	rv = CERT_CopyName(arena, &c->subject, &req->subject);
 | 
| -	if (rv) goto loser;
 | 
| -	rv = SECKEY_CopySubjectPublicKeyInfo(arena, &c->subjectPublicKeyInfo,
 | 
| -					  &req->subjectPublicKeyInfo);
 | 
| -	if (rv) goto loser;
 | 
| -    }
 | 
| +    rv = CERT_CopyValidity(arena, &c->validity, validity);
 | 
| +    if (rv) goto loser;
 | 
| +
 | 
| +    rv = CERT_CopyName(arena, &c->subject, &req->subject);
 | 
| +    if (rv) goto loser;
 | 
| +    rv = SECKEY_CopySubjectPublicKeyInfo(arena, &c->subjectPublicKeyInfo,
 | 
| +					 &req->subjectPublicKeyInfo);
 | 
| +    if (rv) goto loser;
 | 
| +
 | 
|      return c;
 | 
|  
 | 
| -  loser:
 | 
| + loser:
 | 
|      CERT_DestroyCertificate(c);
 | 
|      return 0;
 | 
|  }
 | 
| 
 |