diff options
Diffstat (limited to 'g10/call-agent.c')
-rw-r--r-- | g10/call-agent.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/g10/call-agent.c b/g10/call-agent.c index cc0da316b..9a3b43d9e 100644 --- a/g10/call-agent.c +++ b/g10/call-agent.c @@ -1408,7 +1408,9 @@ agent_scd_serialno (char **r_serialno, const char *demand) char *serialno = NULL; char line[ASSUAN_LINELENGTH]; - *r_serialno = NULL; + if (r_serialno) + *r_serialno = NULL; + err = start_agent (NULL, (1 | FLAG_FOR_CARD_SUPPRESS_ERRORS)); if (err) return err; @@ -1427,7 +1429,11 @@ agent_scd_serialno (char **r_serialno, const char *demand) return err; } - *r_serialno = serialno; + if (r_serialno) + *r_serialno = serialno; + else + xfree (serialno); + return 0; } |