]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
FIX: Coverity, unintended sign extention, CID #121363, (numbits << 16…
authormarshmellow42 <marshmellowrf@gmail.com>
Sun, 14 Feb 2016 16:42:34 +0000 (11:42 -0500)
committermarshmellow42 <marshmellowrf@gmail.com>
Sun, 14 Feb 2016 16:42:34 +0000 (11:42 -0500)
…) becomes int, then uint64_t. But the signness might set all upper bits
to 1 in the process.
from @iceman1001 .

client/cmdhf14a.c

index 330fbec0dd781825a9ba6b30f7de0de1bfd20265..b369d187738c62d9add83943f2eb8ac378d093a2 100644 (file)
@@ -731,7 +731,7 @@ int CmdHF14ACmdRaw(const char *cmd) {
                
                // Max buffer is USB_CMD_DATA_SIZE
                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);
 
     SendCommand(&c);
Impressum, Datenschutz