~ubuntu-branches/ubuntu/raring/nss/raring-security

« back to all changes in this revision

Viewing changes to mozilla/security/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c

  • Committer: Bazaar Package Importer
  • Author(s): Chris Coulson
  • Date: 2010-03-25 13:46:06 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: james.westby@ubuntu.com-20100325134606-bl6liuok2w9l7snv
Tags: 3.12.6-0ubuntu1
* New upstream release 3.12.6 RTM (NSS_3_12_6_RTM)
  - fixes CVE-2009-3555 aka US-CERT VU#120541
* Adjust patches to changed upstream code base
  - update debian/patches/38_kbsd.patch
  - update debian/patches/38_mips64_build.patch
  - update debian/patches/85_security_load.patch
* Remove patches that are merged upstream
  - delete debian/patches/91_nonexec_stack.patch
  - update debian/patches/series
* Bump nspr dependency to 4.8
  - update debian/control
* Add new symbols for 3.12.6
  - update debian/libnss3-1d.symbols

Show diffs side-by-side

added added

removed removed

Lines of Context:
502
502
                        ocspResponse->request = request;
503
503
                        ocspResponse->httpClient = httpClient;
504
504
                        ocspResponse->serverSession = serverSession;
 
505
                        serverSession = NULL;
505
506
                        ocspResponse->sessionRequest = sessionRequest;
 
507
                        sessionRequest = NULL;
506
508
                        ocspResponse->verifyFcn = verifyFcn;
507
509
                        ocspResponse->handle = CERT_GetDefaultCertDB();
508
510
                        ocspResponse->encodedResponse = NULL;
522
524
 
523
525
                hcv1 = &(httpClient->fcnTable.ftable1);
524
526
 
525
 
                rv = (*hcv1->trySendAndReceiveFcn)(sessionRequest,
 
527
                rv = (*hcv1->trySendAndReceiveFcn)(ocspResponse->sessionRequest,
526
528
                        (PRPollDesc **)&nbioContext,
527
529
                        &responseCode,
528
 
                        &responseContentType,
 
530
                        (const char **)&responseContentType,
529
531
                        NULL,   /* responseHeaders */
530
532
                        (const char **)&responseData,
531
533
                        &responseDataLen);
560
562
                            responseData, responseDataLen);
561
563
        }
562
564
        *pResponse = ocspResponse;
 
565
        ocspResponse = NULL;
563
566
 
564
567
cleanup:
565
568
 
566
569
        if (path != NULL) {
567
570
            PORT_Free(path);
568
571
        }
569
 
 
570
572
        if (hostname != NULL) {
571
573
            PORT_Free(hostname);
572
574
        }
573
 
 
574
 
        if (PKIX_ERROR_RECEIVED){
575
 
            if (ocspResponse) {
576
 
                PKIX_DECREF(ocspResponse);
577
 
            } else {
578
 
                if (serverSession) 
579
 
                    hcv1->freeSessionFcn(serverSession);
580
 
                if (sessionRequest)
581
 
                    hcv1->freeFcn(sessionRequest);
582
 
            }
 
575
        if (ocspResponse) {
 
576
            PKIX_DECREF(ocspResponse);
 
577
        }
 
578
        if (serverSession) {
 
579
            hcv1->freeSessionFcn(serverSession);
 
580
        }
 
581
        if (sessionRequest) {
 
582
            hcv1->freeFcn(sessionRequest);
583
583
        }
584
584
 
585
585
        PKIX_RETURN(OCSPRESPONSE);
970
970
pkix_pl_OcspResponse_GetStatusForCert(
971
971
        PKIX_PL_OcspCertID *cid,
972
972
        PKIX_PL_OcspResponse *response,
 
973
        PKIX_PL_Date *validity,
973
974
        PKIX_Boolean *pPassed,
974
975
        SECErrorCodes *pReturnCode,
975
976
        void *plContext)
976
977
{
 
978
        PRTime time = 0;
977
979
        SECStatus rv = SECFailure;
978
980
        SECStatus rvCache;
979
981
        PRBool certIDWasConsumed = PR_FALSE;
989
991
        PKIX_NULLCHECK_TWO(response->signerCert, response->request);
990
992
        PKIX_NULLCHECK_TWO(cid, cid->certID);
991
993
 
 
994
        if (validity != NULL) {
 
995
            PKIX_Error *er = pkix_pl_Date_GetPRTime(validity, &time, plContext);
 
996
            PKIX_DECREF(er);
 
997
        }
 
998
        if (!time) {
 
999
            time = PR_Now();
 
1000
        }
 
1001
 
992
1002
        rv = cert_ProcessOCSPResponse(response->handle,
993
1003
                                      response->nssOCSPResponse,
994
1004
                                      cid->certID,
995
1005
                                      response->signerCert,
996
 
                                      PR_Now(),
 
1006
                                      time,
997
1007
                                      &certIDWasConsumed,
998
1008
                                      &rvCache);
999
1009
        if (certIDWasConsumed) {