NFC: pn533: Frame is invalid if ccid.datalen is 0

Some ACR122 firmwares seem to send 0 length data frames. Before using
that length as a data index, we check that it's not 0. If it is we
report the frame as being invalid.

Reported-by: Arthur Taylor <arthur@advancedtelematic.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Samuel Ortiz 2014-01-04 03:23:35 +01:00
Родитель a434c24074
Коммит ea87a5efa9
1 изменённых файлов: 3 добавлений и 0 удалений

Просмотреть файл

@ -521,6 +521,9 @@ static bool pn533_acr122_is_rx_frame_valid(void *_frame, struct pn533 *dev)
if (frame->ccid.type != 0x83) if (frame->ccid.type != 0x83)
return false; return false;
if (!frame->ccid.datalen)
return false;
if (frame->data[frame->ccid.datalen - 2] == 0x63) if (frame->data[frame->ccid.datalen - 2] == 0x63)
return false; return false;