CHG: coverity complains about not reading the value from mifare_send_short

CHG: ubuntu 14.04 gcc4.8.4 complains about mem_avail still. Don't know why.
This commit is contained in:
iceman1001 2017-01-09 22:15:36 +01:00
parent 38a30dbf18
commit dd83c4572b
4 changed files with 97 additions and 261 deletions

View file

@ -2222,7 +2222,7 @@ void ReaderMifare(bool first_try, uint8_t block, uint8_t keytype ) {
sync_cycles = PRNG_SEQUENCE_LENGTH; // Mifare Classic's random generator repeats every 2^16 cycles (and so do the nonces).
nt_attacked = 0;
if (MF_DBGLEVEL >= 4) Dbprintf("Mifare::Sync %08x", sync_time);
if (MF_DBGLEVEL >= 4) Dbprintf("Mifare::Sync %u", sync_time);
if (first_try) {
mf_nr_ar3 = 0;

View file

@ -471,7 +471,11 @@ int mifare_ultra_writeblock(uint8_t blockNo, uint8_t *blockData) {
}
int mifare_classic_halt_ex(struct Crypto1State *pcs) {
uint8_t receivedAnswer[4] = {0x00, 0x00, 0x00, 0x00};
mifare_sendcmd_short(pcs, (pcs == NULL) ? CRYPT_NONE : CRYPT_ALL, 0x50, 0x00, receivedAnswer, NULL, NULL);
uint16_t len = mifare_sendcmd_short(pcs, (pcs == NULL) ? CRYPT_NONE : CRYPT_ALL, 0x50, 0x00, receivedAnswer, NULL, NULL);
if (len != 0) {
if (MF_DBGLEVEL >= MF_DBG_EXTENDED) Dbprintf("halt warning. response len: %x", len);
return 1;
}
return 0;
}
int mifare_classic_halt(struct Crypto1State *pcs, uint32_t uid) {

View file

@ -769,7 +769,7 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
if (have_debit_key) memcpy(tag_data+(3*8),div_key,8);
if (have_credit_key) memcpy(tag_data+(4*8),c_div_key,8);
printf("Num of bytes: %lu\n", gotBytes);
printf("Num of bytes: %u\n", gotBytes);
// print the dump
printf("------+--+-------------------------+\n");

View file

@ -30,112 +30,45 @@ static void lookupChipID(uint32_t iChipID, uint32_t mem_used)
memset(asBuff, 0, sizeof(asBuff));
uint32_t mem_avail = 0;
switch(iChipID)
{
case 0x270B0A40:
sprintf(asBuff,"AT91SAM7S512 Rev A");
break;
case 0x270B0A4F:
sprintf(asBuff,"AT91SAM7S512 Rev B");
break;
case 0x270D0940:
sprintf(asBuff,"AT91SAM7S256 Rev A");
break;
case 0x270B0941:
sprintf(asBuff,"AT91SAM7S256 Rev B");
break;
case 0x270B0942:
sprintf(asBuff,"AT91SAM7S256 Rev C");
break;
case 0x270B0943:
sprintf(asBuff,"AT91SAM7S256 Rev D");
break;
case 0x270C0740:
sprintf(asBuff,"AT91SAM7S128 Rev A");
break;
case 0x270A0741:
sprintf(asBuff,"AT91SAM7S128 Rev B");
break;
case 0x270A0742:
sprintf(asBuff,"AT91SAM7S128 Rev C");
break;
case 0x270A0743:
sprintf(asBuff,"AT91SAM7S128 Rev D");
break;
case 0x27090540:
sprintf(asBuff,"AT91SAM7S64 Rev A");
break;
case 0x27090543:
sprintf(asBuff,"AT91SAM7S64 Rev B");
break;
case 0x27090544:
sprintf(asBuff,"AT91SAM7S64 Rev C");
break;
case 0x27080342:
sprintf(asBuff,"AT91SAM7S321 Rev A");
break;
case 0x27080340:
sprintf(asBuff,"AT91SAM7S32 Rev A");
break;
case 0x27080341:
sprintf(asBuff,"AT91SAM7S32 Rev B");
break;
case 0x27050241:
sprintf(asBuff,"AT9SAM7S161 Rev A");
break;
case 0x27050240:
sprintf(asBuff,"AT91SAM7S16 Rev A");
break;
switch(iChipID) {
case 0x270B0A40: sprintf(asBuff,"AT91SAM7S512 Rev A"); break;
case 0x270B0A4F: sprintf(asBuff,"AT91SAM7S512 Rev B"); break;
case 0x270D0940: sprintf(asBuff,"AT91SAM7S256 Rev A"); break;
case 0x270B0941: sprintf(asBuff,"AT91SAM7S256 Rev B"); break;
case 0x270B0942: sprintf(asBuff,"AT91SAM7S256 Rev C"); break;
case 0x270B0943: sprintf(asBuff,"AT91SAM7S256 Rev D"); break;
case 0x270C0740: sprintf(asBuff,"AT91SAM7S128 Rev A"); break;
case 0x270A0741: sprintf(asBuff,"AT91SAM7S128 Rev B"); break;
case 0x270A0742: sprintf(asBuff,"AT91SAM7S128 Rev C"); break;
case 0x270A0743: sprintf(asBuff,"AT91SAM7S128 Rev D"); break;
case 0x27090540: sprintf(asBuff,"AT91SAM7S64 Rev A"); break;
case 0x27090543: sprintf(asBuff,"AT91SAM7S64 Rev B"); break;
case 0x27090544: sprintf(asBuff,"AT91SAM7S64 Rev C"); break;
case 0x27080342: sprintf(asBuff,"AT91SAM7S321 Rev A"); break;
case 0x27080340: sprintf(asBuff,"AT91SAM7S32 Rev A"); break;
case 0x27080341: sprintf(asBuff,"AT91SAM7S32 Rev B"); break;
case 0x27050241: sprintf(asBuff,"AT9SAM7S161 Rev A"); break;
case 0x27050240: sprintf(asBuff,"AT91SAM7S16 Rev A"); break;
}
PrintAndLog("uC: %s",asBuff);
switch((iChipID&0xE0)>>5)
{
case 1:
sprintf(asBuff,"ARM946ES");
break;
case 2:
sprintf(asBuff,"ARM7TDMI");
break;
case 4:
sprintf(asBuff,"ARM920T");
break;
case 5:
sprintf(asBuff,"ARM926EJS");
break;
switch( (iChipID & 0xE0) >> 5) {
case 1: sprintf(asBuff,"ARM946ES"); break;
case 2: sprintf(asBuff,"ARM7TDMI"); break;
case 4: sprintf(asBuff,"ARM920T"); break;
case 5: sprintf(asBuff,"ARM926EJS"); break;
}
PrintAndLog("Embedded Processor: %s",asBuff);
switch((iChipID&0xF00)>>8)
{
case 0:
mem_avail = 0;
break;
case 1:
mem_avail = 8;
break;
case 2:
mem_avail = 16;
break;
case 3:
mem_avail = 32;
break;
case 5:
mem_avail = 64;
break;
case 7:
mem_avail = 128;
break;
case 9:
mem_avail = 256;
break;
case 10:
mem_avail = 512;
break;
case 12:
mem_avail = 1024;
break;
case 14:
mem_avail = 2048;
break;
switch( (iChipID & 0xF00) >> 8) {
case 0: mem_avail = 0; break;
case 1: mem_avail = 8; break;
case 2: mem_avail = 16; break;
case 3: mem_avail = 32; break;
case 5: mem_avail = 64; break;
case 7: mem_avail = 128; break;
case 9: mem_avail = 256; break;
case 10: mem_avail = 512; break;
case 12: mem_avail = 1024; break;
case 14: mem_avail = 2048; break;
}
uint32_t mem_left = 0;
@ -148,168 +81,67 @@ static void lookupChipID(uint32_t iChipID, uint32_t mem_used)
mem_avail == 0 ? 0.0f : (float)mem_used/(mem_avail*1024)*100,
mem_left,
mem_avail == 0 ? 0.0f : (float)mem_left/(mem_avail*1024)*100
);
switch((iChipID&0xF000)>>12)
{
case 0:
sprintf(asBuff,"None");
break;
case 1:
sprintf(asBuff,"8K bytes");
break;
case 2:
sprintf(asBuff,"16K bytes");
break;
case 3:
sprintf(asBuff,"32K bytes");
break;
case 5:
sprintf(asBuff,"64K bytes");
break;
case 7:
sprintf(asBuff,"128K bytes");
break;
case 9:
sprintf(asBuff,"256K bytes");
break;
case 10:
sprintf(asBuff,"512K bytes");
break;
case 12:
sprintf(asBuff,"1024K bytes");
break;
case 14:
sprintf(asBuff,"2048K bytes");
break;
);
switch( (iChipID & 0xF000) >> 12 ) {
case 0: sprintf(asBuff,"None"); break;
case 1: sprintf(asBuff,"8K bytes"); break;
case 2: sprintf(asBuff,"16K bytes"); break;
case 3: sprintf(asBuff,"32K bytes"); break;
case 5: sprintf(asBuff,"64K bytes"); break;
case 7: sprintf(asBuff,"128K bytes"); break;
case 9: sprintf(asBuff,"256K bytes"); break;
case 10: sprintf(asBuff,"512K bytes"); break;
case 12: sprintf(asBuff,"1024K bytes"); break;
case 14: sprintf(asBuff,"2048K bytes"); break;
}
PrintAndLog("Second Nonvolatile Program Memory Size: %s",asBuff);
switch((iChipID&0xF0000)>>16)
{
case 1:
sprintf(asBuff,"1K bytes");
break;
case 2:
sprintf(asBuff,"2K bytes");
break;
case 3:
sprintf(asBuff,"6K bytes");
break;
case 4:
sprintf(asBuff,"112K bytes");
break;
case 5:
sprintf(asBuff,"4K bytes");
break;
case 6:
sprintf(asBuff,"80K bytes");
break;
case 7:
sprintf(asBuff,"160K bytes");
break;
case 8:
sprintf(asBuff,"8K bytes");
break;
case 9:
sprintf(asBuff,"16K bytes");
break;
case 10:
sprintf(asBuff,"32K bytes");
break;
case 11:
sprintf(asBuff,"64K bytes");
break;
case 12:
sprintf(asBuff,"128K bytes");
break;
case 13:
sprintf(asBuff,"256K bytes");
break;
case 14:
sprintf(asBuff,"96K bytes");
break;
case 15:
sprintf(asBuff,"512K bytes");
break;
switch( (iChipID & 0xF0000) >> 16) {
case 1: sprintf(asBuff,"1K bytes"); break;
case 2: sprintf(asBuff,"2K bytes"); break;
case 3: sprintf(asBuff,"6K bytes"); break;
case 4: sprintf(asBuff,"112K bytes"); break;
case 5: sprintf(asBuff,"4K bytes"); break;
case 6: sprintf(asBuff,"80K bytes"); break;
case 7: sprintf(asBuff,"160K bytes"); break;
case 8: sprintf(asBuff,"8K bytes"); break;
case 9: sprintf(asBuff,"16K bytes"); break;
case 10: sprintf(asBuff,"32K bytes"); break;
case 11: sprintf(asBuff,"64K bytes"); break;
case 12: sprintf(asBuff,"128K bytes"); break;
case 13: sprintf(asBuff,"256K bytes"); break;
case 14: sprintf(asBuff,"96K bytes"); break;
case 15: sprintf(asBuff,"512K bytes");break;
}
PrintAndLog("Internal SRAM Size: %s",asBuff);
switch((iChipID&0xFF00000)>>20)
{
case 0x19:
sprintf(asBuff,"AT91SAM9xx Series");
break;
case 0x29:
sprintf(asBuff,"AT91SAM9XExx Series");
break;
case 0x34:
sprintf(asBuff,"AT91x34 Series");
break;
case 0x37:
sprintf(asBuff,"CAP7 Series");
break;
case 0x39:
sprintf(asBuff,"CAP9 Series");
break;
case 0x3B:
sprintf(asBuff,"CAP11 Series");
break;
case 0x40:
sprintf(asBuff,"AT91x40 Series");
break;
case 0x42:
sprintf(asBuff,"AT91x42 Series");
break;
case 0x55:
sprintf(asBuff,"AT91x55 Series");
break;
case 0x60:
sprintf(asBuff,"AT91SAM7Axx Series");
break;
case 0x61:
sprintf(asBuff,"AT91SAM7AQxx Series");
break;
case 0x63:
sprintf(asBuff,"AT91x63 Series");
break;
case 0x70:
sprintf(asBuff,"AT91SAM7Sxx Series");
break;
case 0x71:
sprintf(asBuff,"AT91SAM7XCxx Series");
break;
case 0x72:
sprintf(asBuff,"AT91SAM7SExx Series");
break;
case 0x73:
sprintf(asBuff,"AT91SAM7Lxx Series");
break;
case 0x75:
sprintf(asBuff,"AT91SAM7Xxx Series");
break;
case 0x92:
sprintf(asBuff,"AT91x92 Series");
break;
case 0xF0:
sprintf(asBuff,"AT75Cxx Series");
break;
switch( (iChipID & 0xFF00000) >> 20) {
case 0x19: sprintf(asBuff,"AT91SAM9xx Series"); break;
case 0x29: sprintf(asBuff,"AT91SAM9XExx Series"); break;
case 0x34: sprintf(asBuff,"AT91x34 Series"); break;
case 0x37: sprintf(asBuff,"CAP7 Series"); break;
case 0x39: sprintf(asBuff,"CAP9 Series"); break;
case 0x3B: sprintf(asBuff,"CAP11 Series"); break;
case 0x40: sprintf(asBuff,"AT91x40 Series"); break;
case 0x42: sprintf(asBuff,"AT91x42 Series"); break;
case 0x55: sprintf(asBuff,"AT91x55 Series"); break;
case 0x60: sprintf(asBuff,"AT91SAM7Axx Series"); break;
case 0x61: sprintf(asBuff,"AT91SAM7AQxx Series"); break;
case 0x63: sprintf(asBuff,"AT91x63 Series"); break;
case 0x70: sprintf(asBuff,"AT91SAM7Sxx Series"); break;
case 0x71: sprintf(asBuff,"AT91SAM7XCxx Series"); break;
case 0x72: sprintf(asBuff,"AT91SAM7SExx Series"); break;
case 0x73: sprintf(asBuff,"AT91SAM7Lxx Series"); break;
case 0x75: sprintf(asBuff,"AT91SAM7Xxx Series"); break;
case 0x92: sprintf(asBuff,"AT91x92 Series"); break;
case 0xF0: sprintf(asBuff,"AT75Cxx Series"); break;
}
PrintAndLog("Architecture Identifier: %s",asBuff);
switch((iChipID&0x70000000)>>28)
{
case 0:
sprintf(asBuff,"ROM");
break;
case 1:
sprintf(asBuff,"ROMless or on-chip Flash");
break;
case 4:
sprintf(asBuff,"SRAM emulating ROM");
break;
case 2:
sprintf(asBuff,"Embedded Flash Memory");
break;
case 3:
sprintf(asBuff,"ROM and Embedded Flash Memory\nNVPSIZ is ROM size\nNVPSIZ2 is Flash size");
break;
switch( (iChipID & 0x70000000) >> 28 ) {
case 0: sprintf(asBuff,"ROM"); break;
case 1: sprintf(asBuff,"ROMless or on-chip Flash"); break;
case 2: sprintf(asBuff,"Embedded Flash Memory"); break;
case 3: sprintf(asBuff,"ROM and Embedded Flash Memory\nNVPSIZ is ROM size\nNVPSIZ2 is Flash size"); break;
case 4: sprintf(asBuff,"SRAM emulating ROM"); break;
}
PrintAndLog("Nonvolatile Program Memory Type: %s",asBuff);
}