From 16a4dc768bccb7058ee8e93ba5f5e20a07cd7964 Mon Sep 17 00:00:00 2001 From: Klas Lindfors Date: Wed, 18 Sep 2013 15:34:45 +0200 Subject: [PATCH] always set iterations and rewind before second fscanf() --- util.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/util.c b/util.c index 96e11a2..ac3b269 100644 --- a/util.c +++ b/util.c @@ -271,9 +271,8 @@ load_chalresp_state(FILE *f, CR_STATE *state, bool verbose) yubikey_hex_decode(state->salt, salt_hex, sizeof(state->challenge)); state->salt_len = strlen(salt_hex) / 2; - - state->iterations = iterations; } else { + rewind(f); r = fscanf(f, "v1:%126[0-9a-z]:%40[0-9a-z]:%d", challenge_hex, response_hex, &slot); if (r != 3) { D(("Could not parse contents of chalresp_state file (%i)", r)); @@ -283,8 +282,12 @@ load_chalresp_state(FILE *f, CR_STATE *state, bool verbose) if (verbose) { D(("Challenge: %s, expected response: %s, slot: %d", challenge_hex, response_hex, slot)); } + + iterations = CR_DEFAULT_ITERATIONS; } + state->iterations = iterations; + if (! yubikey_hex_p(challenge_hex)) { D(("Invalid challenge hex input : %s", challenge_hex));