From 6608e3da747175a534b326af158c6fb38e754b66 Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: Apr 14 2011 22:29:59 +0000 Subject: - be able to examine the just-imported cert --- diff --git a/src/certsave-n.c b/src/certsave-n.c index 0b48af2..b7cd47a 100644 --- a/src/certsave-n.c +++ b/src/certsave-n.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009,2010 Red Hat, Inc. + * Copyright (C) 2009,2010,2011 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -53,13 +53,14 @@ static int cm_certsave_n_main(int fd, struct cm_store_ca *ca, struct cm_store_entry *entry, void *userdata) { - int status = 1, readwrite; + int status = 1, readwrite, i; PLArenaPool *arena; SECStatus error; SECItem *item; char *p, *q; CERTCertDBHandle *certdb; CERTCertList *certlist; + CERTCertificate **returned; CERTCertListNode *node; struct cm_certsave_n_settings *settings; /* Open the database. */ @@ -113,9 +114,10 @@ cm_certsave_n_main(int fd, struct cm_store_ca *ca, struct cm_store_entry *entry, _exit(1); } #ifdef NSS_FLAGS_DUPLICATES + returned = NULL; error = CERT_ImportCerts(certdb, certUsageUserCertImport, - 1, &item, NULL, PR_TRUE, + 1, &item, &returned, PR_TRUE, PR_FALSE, entry->cm_cert_nickname); if (error == SECSuccess) { @@ -140,9 +142,10 @@ cm_certsave_n_main(int fd, struct cm_store_ca *ca, struct cm_store_entry *entry, CERT_DestroyCertList(certlist); } /* Try again. */ + returned = NULL; error = CERT_ImportCerts(certdb, certUsageUserCertImport, - 1, &item, NULL, + 1, &item, &returned, PR_TRUE, PR_FALSE, entry->cm_cert_nickname); @@ -162,6 +165,12 @@ cm_certsave_n_main(int fd, struct cm_store_ca *ca, struct cm_store_entry *entry, #ifdef NSS_FLAGS_DUPLICATES } #endif + if (returned != NULL) { + for (i = 0; returned[i] != NULL; i++) { + continue; + } + CERT_DestroyCertArray(returned, i); + } } else { cm_log(1, "Error getting handle to default NSS DB.\n"); }