diff --git a/agent/pksign.c b/agent/pksign.c index c94c1a197..d9ffe6019 100644 --- a/agent/pksign.c +++ b/agent/pksign.c @@ -324,8 +324,8 @@ agent_pksign_do (ctrl_t ctrl, const char *cache_nonce, log_error ("failed to read the secret key\n"); goto leave; } - - algo = get_pk_algo_from_key (s_skey); + else + algo = get_pk_algo_from_key (s_skey); if (shadow_info || no_shadow_info) { @@ -374,6 +374,8 @@ agent_pksign_do (ctrl_t ctrl, const char *cache_nonce, if (keyref) agent_write_shadow_key (ctrl->keygrip, serialno, keyref, pkbuf, 0); + algo = get_pk_algo_from_key (s_pkey); + xfree (serialno); xfree (pkbuf); xfree (keyref);