From 1d7ff81bd24dc14730f84f040f63a8da5a344d39 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Sat, 5 Nov 2016 00:44:42 -0400 Subject: ks_list() was returning garbage for keys not visible to current session. --- ks_flash.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'ks_flash.c') diff --git a/ks_flash.c b/ks_flash.c index 2eda9e3..7a11f0f 100644 --- a/ks_flash.c +++ b/ks_flash.c @@ -1097,17 +1097,16 @@ static hal_error_t ks_list(hal_ks_t *ks, if (ks != &db.ks || result == NULL || result_len == NULL) return HAL_ERROR_BAD_ARGUMENTS; - if (db.ksi.used > result_max) - return HAL_ERROR_RESULT_TOO_LONG; - flash_block_t *block; hal_error_t err; - unsigned b; *result_len = 0; for (int i = 0; i < db.ksi.used; i++) { - b = db.ksi.index[i]; + unsigned b = db.ksi.index[i]; + + if (*result_len >= result_max) + return HAL_ERROR_RESULT_TOO_LONG; if ((err = block_read_cached(b, &block)) != HAL_OK) return err; -- cgit v1.2.3