From 0f780b1aebb1b1bde219401735a1c24c1f0a7978 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 26 Oct 2020 12:49:21 +0100 Subject: g10: Make call to agent_scd_serialno more robust. * g10/call-agent.c (agent_scd_serialno): Make sure that NULL is stored on error at r_serialno. * g10/card-util.c (card_status): Simplify freeing of seriaono. (factory_reset): Ditto. -- This pattern is what we use with other functions returning an allocated string and thus less surprising. --- g10/card-util.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'g10/card-util.c') diff --git a/g10/card-util.c b/g10/card-util.c index 168427552..d43081588 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -688,7 +688,8 @@ card_status (ctrl_t ctrl, estream_t fp, const char *serialno) { int err; strlist_t card_list, sl; - char *serialno0, *serialno1; + char *serialno0 = NULL; + char *serialno1 = NULL; int all_cards = 0; int any_card = 0; @@ -733,6 +734,7 @@ card_status (ctrl_t ctrl, estream_t fp, const char *serialno) current_card_status (ctrl, fp, NULL, 0); xfree (serialno1); + serialno1 = NULL; if (!all_cards) goto leave; @@ -740,11 +742,10 @@ card_status (ctrl_t ctrl, estream_t fp, const char *serialno) /* Select the original card again. */ err = agent_scd_serialno (&serialno1, serialno0); - if (!err) - xfree (serialno1); leave: xfree (serialno0); + xfree (serialno1); free_strlist (card_list); } @@ -2000,8 +2001,7 @@ factory_reset (void) char *serialno0; err = agent_scd_serialno (&serialno0, NULL); - if (!err) - xfree (serialno0); + xfree (serialno0); } leave: -- cgit v1.2.3