From c20a0dc6a4540b2733cdfececa7759914e56c218 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Wed, 8 Nov 2023 09:27:08 +0100 Subject: [PATCH] winscard: Use SecureZeroMemory() to clear magic fields. Signed-off-by: Eric Pouech --- dlls/winscard/winscard.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dlls/winscard/winscard.c b/dlls/winscard/winscard.c index d0c7f412a6c..7e53fba45f6 100644 --- a/dlls/winscard/winscard.c +++ b/dlls/winscard/winscard.c @@ -205,7 +205,8 @@ LONG WINAPI SCardReleaseContext( SCARDCONTEXT context ) params.handle = handle->unix_handle; ret = UNIX_CALL( scard_release_context, ¶ms ); - handle->magic = 0; + /* Ensure compiler doesn't optimize out the assignment with 0. */ + SecureZeroMemory( &handle->magic, sizeof(handle->magic) ); free( handle ); TRACE( "returning %#lx\n", ret ); @@ -794,7 +795,8 @@ LONG WINAPI SCardDisconnect( SCARDHANDLE connect, DWORD disposition ) params.disposition = disposition; if (!(ret = UNIX_CALL( scard_disconnect, ¶ms ))) { - handle->magic = 0; + /* Ensure compiler doesn't optimize out the assignment with 0. */ + SecureZeroMemory( &handle->magic, sizeof(handle->magic) ); free( handle ); } TRACE( "returning %#lx\n", ret );