aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scd/app-openpgp.c14
-rw-r--r--scd/command.c2
2 files changed, 8 insertions, 8 deletions
diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c
index 39b390b3e..205d4e579 100644
--- a/scd/app-openpgp.c
+++ b/scd/app-openpgp.c
@@ -3214,7 +3214,7 @@ do_change_pin (app_t app, ctrl_t ctrl, const char *chvnostr,
char *result1 = NULL;
char *result2 = NULL;
char *buffer = NULL;
- size_t resultlen1, resultlen2, bufferlen=0;
+ size_t resultlen1, resultlen2=0, bufferlen=0;
rc = pin2hash_if_kdf (app, 0, resetcode, &result1, &resultlen1);
if (!rc)
@@ -3240,9 +3240,6 @@ do_change_pin (app_t app, ctrl_t ctrl, const char *chvnostr,
}
else if (set_resetcode)
{
- char *buffer = NULL;
- size_t bufferlen;
-
if (strlen (pinvalue) < 8)
{
log_error (_("Reset Code is too short; minimum length is %d\n"), 8);
@@ -3250,13 +3247,16 @@ do_change_pin (app_t app, ctrl_t ctrl, const char *chvnostr,
}
else
{
+ char *buffer = NULL;
+ size_t bufferlen;
+
rc = pin2hash_if_kdf (app, 0, pinvalue, &buffer, &bufferlen);
if (!rc)
rc = iso7816_put_data (app_get_slot (app),
0, 0xD3, buffer, bufferlen);
- }
- wipe_and_free (buffer, bufferlen);
+ wipe_and_free (buffer, bufferlen);
+ }
}
else if (reset_mode)
{
@@ -3319,7 +3319,7 @@ do_change_pin (app_t app, ctrl_t ctrl, const char *chvnostr,
{
char *buffer1 = NULL;
char *buffer2 = NULL;
- size_t bufferlen1, bufferlen2;
+ size_t bufferlen1, bufferlen2 = 0;
rc = pin2hash_if_kdf (app, chvno, oldpinvalue, &buffer1, &bufferlen1);
if (!rc)
diff --git a/scd/command.c b/scd/command.c
index 02cf8907f..018058b73 100644
--- a/scd/command.c
+++ b/scd/command.c
@@ -2497,7 +2497,7 @@ void
pincache_put (ctrl_t ctrl, int slot, const char *appname, const char *pinref,
const char *pin, unsigned int pinlen)
{
- gpg_error_t err;
+ gpg_error_t err = 0;
assuan_context_t ctx;
char line[950];
gcry_cipher_hd_t cipherhd = NULL;