aboutsummaryrefslogtreecommitdiffstats
path: root/g10/card-util.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2020-10-26 11:49:21 +0000
committerWerner Koch <[email protected]>2020-10-26 11:50:30 +0000
commit0f780b1aebb1b1bde219401735a1c24c1f0a7978 (patch)
tree1a135a0114f49daee6d2c5c3cc6234173a781372 /g10/card-util.c
parentg10,sm: Use gnupg_access at two more places (diff)
downloadgnupg-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.c10
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: