From 2af7bb2295cda5377546cedd0c906a3cff4d2427 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Thu, 20 May 2021 10:13:51 +0200 Subject: g10: Fix memory leaks * g10/card-util.c (change_pin): free answer on errors (ask_card_keyattr): free answer on error * g10/cpr.c (do_get_from_fd): free string * g10/gpg.c (check_permissions): free dir on weird error * g10/import.c (append_new_uid): release knode * g10/keyedit.c (menu_set_keyserver_url): free answer (menu_set_keyserver_url): free user * g10/keygen.c (print_status_key_not_created): move allocation after sanity check (ask_expire_interval): free answer (card_store_key_with_backup): goto leave instaed of return * g10/keyserver.c (parse_keyserver_uri): goto fail instead of return * g10/revoke.c (gen_desig_revoke): release kdbhd (gen_desig_revoke): free answer * g10/tofu.c (ask_about_binding): free sqerr and response * g10/trustdb.c (ask_ownertrust): free pk -- Signed-off-by: Jakub Jelen Further changes: * g10/card-util.c (change_pin): Do not set answer to NULL. * g10/keyedit.c(menu_set_keyserver_url): Use !func() pattern. Signed-off-by: Werner Koch GnuPG-bug-id: 5393 --- g10/card-util.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'g10/card-util.c') diff --git a/g10/card-util.c b/g10/card-util.c index 36f096f06..e79e9e508 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -140,7 +140,10 @@ change_pin (int unblock_v2, int allow_admin) answer = cpr_get("cardutil.change_pin.menu",_("Your selection? ")); cpr_kill_prompt(); if (strlen (answer) != 1) - continue; + { + xfree (answer); + continue; + } if (*answer == '1') { @@ -185,8 +188,10 @@ change_pin (int unblock_v2, int allow_admin) } else if (*answer == 'q' || *answer == 'Q') { + xfree (answer); break; } + xfree (answer); } agent_release_card_info (&info); @@ -1450,7 +1455,10 @@ ask_card_keyattr (int keyno, const struct key_attr *current) algo = *answer? atoi (answer) : 0; if (!*answer || algo == 1 || algo == 2) - break; + { + xfree (answer); + break; + } else tty_printf (_("Invalid selection.\n")); } -- cgit v1.2.3