Blob Blame History Raw
From c13cc0b03dcae9a743cc49aaa62c3923a3e7d8f9 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Wed, 17 Oct 2012 09:55:02 -0400
Subject: [PATCH 04/36] Make sure we actually look up the certificate when not
 in daemon mode.

Signed-off-by: Peter Jones <pjones@redhat.com>
---
 src/pesign.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/pesign.c b/src/pesign.c
index 108994e..4ddf636 100644
--- a/src/pesign.c
+++ b/src/pesign.c
@@ -500,12 +500,6 @@ main(int argc, char *argv[])
 		POPT_TABLEEND
 	};
 
-	tokenname = strdup(tokenname);
-	if (!tokenname) {
-		fprintf(stderr, "could not allocate memory: %m\n");
-		exit(1);
-	}
-
 	if (!daemon) {
 		SECStatus status = NSS_Init("/etc/pki/pesign");
 		if (status != SECSuccess) {
@@ -521,8 +515,6 @@ main(int argc, char *argv[])
 		exit(1);
 	}
 
-	ctx.cms_ctx->certname = certname ? strdup(certname) : NULL;
-
 	optCon = poptGetContext("pesign", argc, (const char **)argv, options,0);
 
 	rc = poptReadDefaultConfig(optCon, 0);
@@ -559,7 +551,21 @@ main(int argc, char *argv[])
 		exit(!is_help);
 	}
 
-	ctx.cms_ctx->tokenname = tokenname;
+	ctx.cms_ctx->tokenname = tokenname ?
+		PORT_ArenaStrdup(ctx.cms_ctx->arena, tokenname) : NULL;
+	if (!ctx.cms_ctx->tokenname) {
+		fprintf(stderr, "could not allocate token name: %s\n",
+			PORT_ErrorToString(PORT_GetError()));
+		exit(1);
+	}
+
+	ctx.cms_ctx->certname = certname ?
+		PORT_ArenaStrdup(ctx.cms_ctx->arena, certname) : NULL;
+	if (!ctx.cms_ctx->certname) {
+		fprintf(stderr, "could not allocate certificate name: %s\n",
+			PORT_ErrorToString(PORT_GetError()));
+		exit(1);
+	}
 
 	int action = 0;
 	if (daemon)
-- 
1.7.12.1