aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scd/app.c1
-rw-r--r--scd/command.c11
2 files changed, 9 insertions, 3 deletions
diff --git a/scd/app.c b/scd/app.c
index 86c153676..cc2a549a5 100644
--- a/scd/app.c
+++ b/scd/app.c
@@ -2046,7 +2046,6 @@ app_do_with_keygrip (ctrl_t ctrl, int action, const char *keygrip_str,
int capability)
{
int locked = 0;
- gpg_error_t err;
card_t c;
app_t a, a_prev;
diff --git a/scd/command.c b/scd/command.c
index 08e790992..5dc0ef6a5 100644
--- a/scd/command.c
+++ b/scd/command.c
@@ -519,7 +519,10 @@ cmd_readcert (assuan_context_t ctx, char *line)
if ((rc = open_card (ctrl)))
return rc;
- line = xstrdup (line); /* Need a copy of the line. */
+ line = xtrystrdup (line); /* Need a copy of the line. */
+ if (!line)
+ return gpg_error_from_syserror ();
+
rc = app_readcert (ctrl->card_ctx, ctrl, line, &cert, &ncert);
if (rc)
log_error ("app_readcert failed: %s\n", gpg_strerror (rc));
@@ -634,7 +637,10 @@ cmd_readkey (assuan_context_t ctx, char *line)
opt_info = opt_nokey = 1;
line = skip_options (line);
- line = xstrdup (line); /* Need a copy of the line. */
+
+ line = xtrystrdup (line); /* Need a copy of the line. */
+ if (!line)
+ return gpg_error_from_syserror ();
if (strlen (line) == 40)
{
@@ -689,6 +695,7 @@ cmd_readkey (assuan_context_t ctx, char *line)
leave:
xfree (pk);
+ xfree (line);
return rc;
}