coverity fixes for my latest changes.

Forgot some breaks in 7816 annotation, and  presco used an uninitalized char array.
This commit is contained in:
iceman1001 2016-03-22 08:40:20 +01:00
parent f3782960fa
commit 06eb3b1a8c
3 changed files with 18 additions and 17 deletions

View file

@ -70,9 +70,9 @@ static inline int parity(uint32_t x)
return BIT(0x6996, x & 0xf); return BIT(0x6996, x & 0xf);
#else #else
__asm__( "movl %1, %%eax\n" __asm__( "movl %1, %%eax\n"
"mov %%ax, %%cx\n" "mov %%ax, %%cx\n"
"shrl $0x10, %%eax\n" "shrl $0x10, %%eax\n"
"xor %%ax, %%cx\n" "xor %%ax, %%cx\n"
"xor %%ch, %%cl\n" "xor %%ch, %%cl\n"
"setpo %%al\n" "setpo %%al\n"
"movzx %%al, %0\n": "=r"(x) : "r"(x): "eax","ecx"); "movzx %%al, %0\n": "=r"(x) : "r"(x): "eax","ecx");
@ -88,7 +88,7 @@ static inline int filter(uint32_t const x)
f |= 0x3c8b0 >> (x >> 8 & 0xf) & 4; f |= 0x3c8b0 >> (x >> 8 & 0xf) & 4;
f |= 0x1e458 >> (x >> 12 & 0xf) & 2; f |= 0x1e458 >> (x >> 12 & 0xf) & 2;
f |= 0x0d938 >> (x >> 16 & 0xf) & 1; f |= 0x0d938 >> (x >> 16 & 0xf) & 1;
return BIT(0xEC57E80A, f); return BIT(0xEC57E80A, 0xf);
} }
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -45,6 +45,8 @@ int GetWiegandFromPresco(const char *Cmd, uint32_t *sitecode, uint32_t *usercode
uint8_t cmdp = 0; uint8_t cmdp = 0;
char id[11]; char id[11];
int stringlen = 0; int stringlen = 0;
memset(id, 0x00, sizeof(id));
while(param_getchar(Cmd, cmdp) != 0x00) { while(param_getchar(Cmd, cmdp) != 0x00) {
switch(param_getchar(Cmd, cmdp)) { switch(param_getchar(Cmd, cmdp)) {
case 'h': case 'h':
@ -81,19 +83,19 @@ int GetWiegandFromPresco(const char *Cmd, uint32_t *sitecode, uint32_t *usercode
if(errors) return -1; if(errors) return -1;
if (!hex) { if (!hex) {
for (int index =0; index < strlen(id); ++index) { for (int index =0; index < strlen(id); ++index) {
// Get value from number string. // Get value from number string.
if ( id[index] == '*' ) val = 10; if ( id[index] == '*' ) val = 10;
if ( id[index] == '#') val = 11; if ( id[index] == '#') val = 11;
if ( id[index] >= 0x30 && id[index] <= 0x39 ) if ( id[index] >= 0x30 && id[index] <= 0x39 )
val = id[index] - 0x30; val = id[index] - 0x30;
*fullcode += val; *fullcode += val;
// last digit is only added, not multipled. // last digit is only added, not multipled.
if ( index < strlen(id)-1 ) if ( index < strlen(id)-1 )
*fullcode *= 12; *fullcode *= 12;
} }
} }

View file

@ -29,6 +29,5 @@ typedef unsigned char byte_t;
#ifndef ABS #ifndef ABS
# define ABS(a) ( ((a)<0) ? -(a) : (a) ) # define ABS(a) ( ((a)<0) ? -(a) : (a) )
#endif #endif
#define RAMFUNC __attribute((long_call, section(".ramfunc"))) #define RAMFUNC __attribute((long_call, section(".ramfunc")))
#endif #endif