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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user