diff options
author | NIIBE Yutaka <[email protected]> | 2017-03-27 04:56:02 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2017-03-27 04:56:02 +0000 |
commit | d58275703f035e8cfd58cd1c2d0d5ac7dc59e110 (patch) | |
tree | c24185f91fe5b460d5ee6d385be17ce40cda85fa | |
parent | scd: Fix timeout handling for key generation. (diff) | |
download | gnupg-d58275703f035e8cfd58cd1c2d0d5ac7dc59e110.tar.gz gnupg-d58275703f035e8cfd58cd1c2d0d5ac7dc59e110.zip |
scd: Change the order of applications when accessed.
* scd/app.c (select_application): Move the app to top.
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | scd/app.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -316,7 +316,7 @@ select_application (ctrl_t ctrl, const char *name, app_t *r_app, size_t serialno_bin_len) { gpg_error_t err = 0; - app_t a; + app_t a, a_prev = NULL; *r_app = NULL; @@ -375,6 +375,7 @@ select_application (ctrl_t ctrl, const char *name, app_t *r_app, && !memcmp (a->serialno, serialno_bin, a->serialnolen)) break; unlock_app (a); + a_prev = a; } if (a) @@ -384,7 +385,13 @@ select_application (ctrl_t ctrl, const char *name, app_t *r_app, { a->ref_count++; *r_app = a; - } + if (a_prev) + { + a_prev->next = a->next; + a->next = app_top; + app_top = a; + } + } unlock_app (a); } else |