aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/ks-engine-http.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2021-04-28 16:19:33 +0000
committerWerner Koch <[email protected]>2021-04-28 16:21:56 +0000
commitbb8e3996e44f4f057f0771b9b72c89feae00f1b1 (patch)
tree4e6d9985f2560cb6812b0f700ad0b22bdbc3832c /dirmngr/ks-engine-http.c
parentbuild: Allow running sign-release target from the dist dir. (diff)
downloadgnupg-bb8e3996e44f4f057f0771b9b72c89feae00f1b1.tar.gz
gnupg-bb8e3996e44f4f057f0771b9b72c89feae00f1b1.zip
scd: Fix problem with reader list becoming empty.
* scd/apdu.c (close_pcsc_reader): Do not decrement refcount if already zero. Always release context if or becomes zero. (apdu_dev_list_start): Unlock prior to close_pcsc_reader. For PC/SC increment the count. Always release the lock. (apdu_dev_list_finish): No more unlocking. Use close_pcsc_reader instead of code duplication. * scd/apdu.c (pcsc_error_string): Add an error code. * scd/scdaemon.c (scd_kick_the_loop): Fix a diagnostic. -- There was an obvious bug in that the pcsc.count could go below zero and thus there was no chance to get the context release. Releasing and recreating the context is at least under Windows important to get rit of the PCSC_E_SERVICE_STOPPED. Also removes a potential problem in holding the reader_table_lock between calls to apdu_dev_list_start apdu_dev_list_finish. There is no need for this. Instead we bump the pcsc.count. The reader_table_lock strategy should be reviewed; we may be able to remove it. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'dirmngr/ks-engine-http.c')
0 files changed, 0 insertions, 0 deletions