From 278b55a87a5f4b9bd86513f7d8f9ab7d66558602 Mon Sep 17 00:00:00 2001 From: Ludovic Rousseau Date: Sat, 8 Aug 2020 17:37:40 +0200 Subject: [PATCH 05/13] EHUnregisterClientForEvent: correctly handle EHTryToUnregisterClientForEvent EHTryToUnregisterClientForEvent() returns SCARD_S_SUCCESS or SCARD_F_INTERNAL_ERROR but never a negative value. Thanks to Valerii Zapodovnikov for the bug report "Code cleanup" https://salsa.debian.org/rousseau/PCSC/-/issues/19 " https://salsa.debian.org/rousseau/PCSC/-/blob/master/src/eventhandler.c#L107 rv < 0 is always false, because on line 94 there SCARD_F_INTERNAL_ERROR is ((LONG)0x80100001 and SCARD_S_SUCCESS is ((LONG)0x00000000). " --- src/eventhandler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eventhandler.c b/src/eventhandler.c index 932d30b..8d450d5 100644 --- a/src/eventhandler.c +++ b/src/eventhandler.c @@ -104,7 +104,7 @@ LONG EHUnregisterClientForEvent(int32_t filedes) { LONG rv = EHTryToUnregisterClientForEvent(filedes); - if (rv < 0) + if (rv != SCARD_S_SUCCESS) Log2(PCSC_LOG_ERROR, "Can't remove client: %d", filedes); return rv; -- 1.8.3.1