mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
scd: PC/SC: Don't release the context when it's in use.
* scd/apdu.c (close_pcsc_reader): Check if it's not in the loop. -- GnuPG-bug-id: 4998 Reported-by: Kevin Locke Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
43000b0434
commit
46d185f603
@ -161,17 +161,6 @@ _init_common_subsystems (gpg_err_source_t errsource, int *argcp, char ***argvp)
|
||||
/* Try to auto set the character set. */
|
||||
set_native_charset (NULL);
|
||||
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
/* For W32 we need to initialize the socket layer. This is because
|
||||
we use recv and send in libassuan as well as at some other
|
||||
places. */
|
||||
{
|
||||
WSADATA wsadat;
|
||||
|
||||
WSAStartup (0x202, &wsadat);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_W32CE_SYSTEM
|
||||
/* Register the sleep exit function before the estream init so that
|
||||
the sleep will be called after the estream registered atexit
|
||||
|
@ -208,16 +208,6 @@ main (int argc, char **argv )
|
||||
* init_common_subsystems, but we don't need that here. */
|
||||
gpgrt_set_fixed_string_mapper (map_static_macro_string);
|
||||
|
||||
/* For W32 we need to initialize the socket subsystem. Because we
|
||||
don't use Pth we need to do this explicit. */
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
{
|
||||
WSADATA wsadat;
|
||||
|
||||
WSAStartup (0x202, &wsadat);
|
||||
}
|
||||
#endif /*HAVE_W32_SYSTEM*/
|
||||
|
||||
/* Init Assuan. */
|
||||
assuan_set_assuan_log_prefix (log_get_prefix (NULL));
|
||||
assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
|
||||
|
@ -813,7 +813,7 @@ static int
|
||||
close_pcsc_reader (int slot)
|
||||
{
|
||||
(void)slot;
|
||||
if (--pcsc.count == 0)
|
||||
if (--pcsc.count == 0 && npth_mutex_trylock (&reader_table_lock) == 0)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user