FIX: Coverity, unintended sign extention, CID #121363, (numbits << 16…

…) becomes int, then uint64_t. But the signness might set all upper bits
to 1 in the process.
from @iceman1001 .
This commit is contained in:
marshmellow42 2016-02-14 11:42:34 -05:00
parent fd9172d5c2
commit 3d4982ddbf

View file

@ -731,7 +731,7 @@ int CmdHF14ACmdRaw(const char *cmd) {
// Max buffer is USB_CMD_DATA_SIZE // Max buffer is USB_CMD_DATA_SIZE
datalen = (datalen > USB_CMD_DATA_SIZE) ? USB_CMD_DATA_SIZE : datalen; datalen = (datalen > USB_CMD_DATA_SIZE) ? USB_CMD_DATA_SIZE : datalen;
c.arg[1] = (datalen & 0xFFFF) | (numbits << 16); c.arg[1] = (datalen & 0xFFFF) | ( (uint32_t)(numbits) << 16);
memcpy(c.d.asBytes,data,datalen); memcpy(c.d.asBytes,data,datalen);
SendCommand(&c); SendCommand(&c);