diff options
author | Werner Koch <[email protected]> | 2020-10-26 11:49:21 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2020-10-26 11:50:30 +0000 |
commit | 0f780b1aebb1b1bde219401735a1c24c1f0a7978 (patch) | |
tree | 1a135a0114f49daee6d2c5c3cc6234173a781372 /g10/card-util.c | |
parent | g10,sm: Use gnupg_access at two more places (diff) | |
download | gnupg-0f780b1aebb1b1bde219401735a1c24c1f0a7978.tar.gz gnupg-0f780b1aebb1b1bde219401735a1c24c1f0a7978.zip |
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.
Diffstat (limited to 'g10/card-util.c')
-rw-r--r-- | g10/card-util.c | 10 |
1 files changed, 5 insertions, 5 deletions
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: |