From c13cc0b03dcae9a743cc49aaa62c3923a3e7d8f9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 17 Oct 2012 09:55:02 -0400 Subject: [PATCH 04/41] Make sure we actually look up the certificate when not in daemon mode. Signed-off-by: Peter Jones --- 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