From 10101984dacdf2fcd3ecb8fc099c7f185b4d5a94 Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Sat, 28 Oct 2017 23:29:50 +0200 Subject: [PATCH] fixed dereferencing type-punned pointer --- src/libopensc/reader-pcsc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libopensc/reader-pcsc.c b/src/libopensc/reader-pcsc.c index 20eaf30c..6075dc06 100644 --- a/src/libopensc/reader-pcsc.c +++ b/src/libopensc/reader-pcsc.c @@ -1219,11 +1219,10 @@ static void detect_reader_features(sc_reader_t *reader, SCARDHANDLE card_handle) reader->vendor = strdup((char *) rbuf); } - rcount = sizeof rbuf; + rcount = sizeof i; if(gpriv->SCardGetAttrib(card_handle, SCARD_ATTR_VENDOR_IFD_VERSION, - rbuf, &rcount) == SCARD_S_SUCCESS - && rcount == 4) { - i = *(DWORD *) rbuf; + (u8 *) &i, &rcount) == SCARD_S_SUCCESS + && rcount == sizeof i) { reader->version_major = (i >> 24) & 0xFF; reader->version_minor = (i >> 16) & 0xFF; }