added length check on rapdu buffer.

git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@312 96b47cad-a561-4643-ad3b-153ac7d7599c
This commit is contained in:
frankmorgner
2010-10-10 14:38:20 +00:00
parent 305c94a666
commit e8d4026d23

View File

@@ -21,7 +21,8 @@ IFDHCreateChannel (DWORD Lun, DWORD Channel)
RESPONSECODE
IFDHCreateChannelByName (DWORD Lun, LPSTR DeviceName)
{
Log2(PCSC_LOG_INFO, "Using default port %hu", VPCDPORT);
/* XXX see bug #312749 on https://alioth.debian.org/projects/pcsclite/ */
Log3(PCSC_LOG_INFO, "Not opening %s. Using default port %hu", DeviceName, VPCDPORT);
return IFDHCreateChannel (Lun, VPCDPORT);
}
@@ -156,6 +157,13 @@ IFDHTransmitToICC (DWORD Lun, SCARD_IO_HEADER SendPci, PUCHAR TxBuffer,
return IFD_COMMUNICATION_ERROR;
}
if (*RxLength < size) {
Log1(PCSC_LOG_ERROR, "Not enough memory for rapdu");
*RxLength = 0;
free(rapdu);
return IFD_COMMUNICATION_ERROR;
}
(*RxLength) = size;
RxBuffer = memcpy(RxBuffer, rapdu, size);
free(rapdu);