Fixed GetAttrib call
authorakallabeth <akallabeth@posteo.net>
Sat, 6 Feb 2021 11:40:17 +0000 (12:40 +0100)
committerakallabeth <akallabeth@users.noreply.github.com>
Thu, 25 Feb 2021 08:51:41 +0000 (09:51 +0100)
(cherry picked from commit 99d228251c73c3c33bc1119ceb7d084f77d80076)

channels/smartcard/client/smartcard_pack.c

index 5532eb2..f54984b 100644 (file)
@@ -3298,15 +3298,15 @@ LONG smartcard_unpack_set_attrib_call(SMARTCARD_DEVICE* smartcard, wStream* s, S
        Stream_Read_UINT32(s, call->dwAttrId);
        Stream_Read_UINT32(s, call->cbAttrLen);
 
+       if (!smartcard_ndr_pointer_read(s, &index, &ndrPtr))
+               return ERROR_INVALID_DATA;
+
        if ((status = smartcard_unpack_redir_scard_context_ref(smartcard, s, &(call->hContext))))
                return status;
 
        if ((status = smartcard_unpack_redir_scard_handle_ref(smartcard, s, &(call->hCard))))
                return status;
 
-       if (!smartcard_ndr_pointer_read(s, &index, &ndrPtr))
-               return ERROR_INVALID_DATA;
-
        if (ndrPtr)
        {
                // TODO: call->cbAttrLen was larger than the pointer value.