From 25b5dec23d16b6c20c0a39ad3d2733db7139874b Mon Sep 17 00:00:00 2001 From: akallabeth Date: Mon, 10 Feb 2025 17:28:05 +0100 Subject: [PATCH] [utils,smartcard] return proper list for smartcard listing --- libfreerdp/utils/smartcard_call.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libfreerdp/utils/smartcard_call.c b/libfreerdp/utils/smartcard_call.c index 32c6d7249..eb3734a83 100644 --- a/libfreerdp/utils/smartcard_call.c +++ b/libfreerdp/utils/smartcard_call.c @@ -350,7 +350,10 @@ static LONG smartcard_ListReadersA_Call(scard_call_context* smartcard, wStream* return SCARD_F_UNKNOWN_ERROR; if (status != SCARD_S_SUCCESS) - return scard_log_status_error(TAG, "SCardListReadersA", status); + { + (void)scard_log_status_error(TAG, "SCardListReadersA", status); + return smartcard_pack_list_readers_return(out, &ret, FALSE); + } cchReaders = filter_device_by_name_a(smartcard->names, &mszReaders, cchReaders); ret.msz = (BYTE*)mszReaders; @@ -400,7 +403,10 @@ static LONG smartcard_ListReadersW_Call(scard_call_context* smartcard, wStream* return SCARD_F_UNKNOWN_ERROR; if (status != SCARD_S_SUCCESS) - return scard_log_status_error(TAG, "SCardListReadersW", status); + { + (void)scard_log_status_error(TAG, "SCardListReadersW", status); + return smartcard_pack_list_readers_return(out, &ret, TRUE); + } cchReaders = filter_device_by_name_w(smartcard->names, &mszReaders.pw, cchReaders); ret.msz = mszReaders.pb;