int length = 0;
char* namePCSC;
char* nameWinSCard;
+ DWORD cbAttrLen = 0;
char* pbAttrA = NULL;
WCHAR* pbAttrW = NULL;
SCARDCONTEXT hContext;
if (!hContext)
return SCARD_E_INVALID_HANDLE;
+ cbAttrLen = *pcbAttrLen;
*pcbAttrLen = SCARD_AUTOALLOCATE;
status = PCSC_SCardGetAttrib_Internal(hCard, SCARD_ATTR_DEVICE_FRIENDLY_NAME_A,
if (!friendlyNameW)
return SCARD_E_NO_MEMORY;
- if (*pcbAttrLen == SCARD_AUTOALLOCATE)
+ if (cbAttrLen == SCARD_AUTOALLOCATE)
{
*pPbAttr = (BYTE*) friendlyNameW;
*pcbAttrLen = length * 2;
}
else
{
- if (((length + 1) * 2) > *pcbAttrLen)
+ if (((length + 1) * 2) > cbAttrLen)
{
free(friendlyNameW);
return SCARD_E_INSUFFICIENT_BUFFER;
}
else
{
- if (*pcbAttrLen == SCARD_AUTOALLOCATE)
+ if (cbAttrLen == SCARD_AUTOALLOCATE)
{
*pPbAttr = (BYTE*) friendlyNameA;
*pcbAttrLen = length;
}
else
{
- if ((length + 1) > *pcbAttrLen)
+ if ((length + 1) > cbAttrLen)
{
free(friendlyNameA);
return SCARD_E_INSUFFICIENT_BUFFER;
if ((dwAttrId == SCARD_ATTR_DEVICE_FRIENDLY_NAME_A) || (dwAttrId == SCARD_ATTR_DEVICE_FRIENDLY_NAME_W))
{
- return PCSC_SCardGetAttrib_FriendlyName(hCard, dwAttrId, pbAttr, pcbAttrLen);
+ status = PCSC_SCardGetAttrib_FriendlyName(hCard, dwAttrId, pbAttr, pcbAttrLen);
+ return status;
}
status = PCSC_SCardGetAttrib_Internal(hCard, dwAttrId, pbAttr, pcbAttrLen);