Compiler correctly identified a buffer overflow, fixed that and made the code use snprintf instead of unsafe sprintf

This commit is contained in:
Martin Holst Swende 2015-04-01 09:24:29 +02:00
parent f83c41c75b
commit 9795e535c9

View file

@ -926,94 +926,96 @@ char * GetBitRateStr(uint32_t id){
char *retStr = buf; char *retStr = buf;
switch (id){ switch (id){
case 0: case 0:
sprintf(retStr,"%d - RF/8",id); snprintf(retStr,sizeof(buf),"%d - RF/8",id);
break; break;
case 1: case 1:
sprintf(retStr,"%d - RF/16",id); snprintf(retStr,sizeof(buf),"%d - RF/16",id);
break; break;
case 2: case 2:
sprintf(retStr,"%d - RF/32",id); snprintf(retStr,sizeof(buf),"%d - RF/32",id);
break; break;
case 3: case 3:
sprintf(retStr,"%d - RF/40",id); snprintf(retStr,sizeof(buf),"%d - RF/40",id);
break; break;
case 4: case 4:
sprintf(retStr,"%d - RF/50",id); snprintf(retStr,sizeof(buf),"%d - RF/50",id);
break; break;
case 5: case 5:
sprintf(retStr,"%d - RF/64",id); snprintf(retStr,sizeof(buf),"%d - RF/64",id);
break; break;
case 6: case 6:
sprintf(retStr,"%d - RF/100",id); snprintf(retStr,sizeof(buf),"%d - RF/100",id);
break; break;
case 7: case 7:
sprintf(retStr,"%d - RF/128",id); snprintf(retStr,sizeof(buf),"%d - RF/128",id);
break; break;
default: default:
sprintf(retStr,"%d - (Unknown)",id); snprintf(retStr,sizeof(buf),"%d - (Unknown)",id);
break; break;
} }
return buf; return buf;
} }
char * GetSaferStr(uint32_t id){ char * GetSaferStr(uint32_t id){
static char buf[40]; static char buf[40];
char *retStr = buf; char *retStr = buf;
sprintf(retStr,"%d",id); snprintf(retStr,sizeof(buf),"%d",id);
if (id == 6) { if (id == 6) {
sprintf(retStr,"%d - passwd",id); snprintf(retStr,sizeof(buf),"%d - passwd",id);
} }
if (id == 9 ){ if (id == 9 ){
sprintf(retStr,"%d - testmode",id); snprintf(retStr,sizeof(buf),"%d - testmode",id);
} }
return buf; return buf;
} }
char * GetModulationStr( uint32_t id){ char * GetModulationStr( uint32_t id){
static char buf[40]; static char buf[40];
char *retStr = buf; char *retStr = buf;
switch (id){ switch (id){
case 0: case 0:
sprintf(retStr,"%d - DIRECT (ASK/NRZ)",id); snprintf(retStr,sizeof(buf),"%d - DIRECT (ASK/NRZ)",id);
break; break;
case 1: case 1:
sprintf(retStr,"%d - PSK 1 phase change when input changes",id); snprintf(retStr,sizeof(buf),"%d - PSK 1 phase change when input changes",id);
break; break;
case 2: case 2:
sprintf(retStr,"%d - PSK 2 phase change on bitclk if input high",id); snprintf(retStr,sizeof(buf),"%d - PSK 2 phase change on bitclk if input high",id);
break; break;
case 3: case 3:
sprintf(retStr,"%d - PSK 3 phase change on rising edge of input",id); snprintf(retStr,sizeof(buf),"%d - PSK 3 phase change on rising edge of input",id);
break; break;
case 4: case 4:
sprintf(retStr,"%d - FSK 1 RF/8 RF/5",id); snprintf(retStr,sizeof(buf),"%d - FSK 1 RF/8 RF/5",id);
break; break;
case 5: case 5:
sprintf(retStr,"%d - FSK 2 RF/8 RF/10",id); snprintf(retStr,sizeof(buf),"%d - FSK 2 RF/8 RF/10",id);
break; break;
case 6: case 6:
sprintf(retStr,"%d - FSK 1a RF/5 RF/8",id); snprintf(retStr,sizeof(buf),"%d - FSK 1a RF/5 RF/8",id);
break; break;
case 7: case 7:
sprintf(retStr,"%d - FSK 2a RF/10 RF/8",id); snprintf(retStr,sizeof(buf),"%d - FSK 2a RF/10 RF/8",id);
break; break;
case 8: case 8:
sprintf(retStr,"%d - Manschester",id); snprintf(retStr,sizeof(buf),"%d - Manschester",id);
break; break;
case 16: case 16:
sprintf(retStr,"%d - Biphase",id); snprintf(retStr,sizeof(buf),"%d - Biphase",id);
break; break;
case 0x18: case 0x18:
sprintf(retStr,"%d - Biphase a - AKA Conditional Dephase Encoding(CDP)",id); snprintf(retStr,sizeof(buf),"%d - Biphase a - AKA Conditional Dephase Encoding(CDP)",id);
break; break;
case 17: case 17:
sprintf(retStr,"%d - Reserved",id); snprintf(retStr,sizeof(buf),"%d - Reserved",id);
break; break;
default: default:
sprintf(retStr,"0x%02X (Unknown)",id); snprintf(retStr,sizeof(buf),"0x%02X (Unknown)",id);
break; break;
} }
return buf; return buf;
@ -1031,48 +1033,48 @@ char * GetModelStrFromCID(uint32_t cid){
char * GetSelectedModulationStr( uint8_t id){ char * GetSelectedModulationStr( uint8_t id){
static char buf[16]; static char buf[20];
char *retStr = buf; char *retStr = buf;
switch (id){ switch (id){
case DEMOD_FSK: case DEMOD_FSK:
sprintf(retStr,"FSK"); snprintf(retStr,sizeof(buf),"FSK");
break; break;
case DEMOD_FSK1: case DEMOD_FSK1:
sprintf(retStr,"FSK1"); snprintf(retStr,sizeof(buf),"FSK1");
break; break;
case DEMOD_FSK1a: case DEMOD_FSK1a:
sprintf(retStr,"FSK1a"); snprintf(retStr,sizeof(buf),"FSK1a");
break; break;
case DEMOD_FSK2: case DEMOD_FSK2:
sprintf(retStr,"FSK2"); snprintf(retStr,sizeof(buf),"FSK2");
break; break;
case DEMOD_FSK2a: case DEMOD_FSK2a:
sprintf(retStr,"FSK2a"); snprintf(retStr,sizeof(buf),"FSK2a");
break; break;
case DEMOD_ASK: case DEMOD_ASK:
sprintf(retStr,"ASK"); snprintf(retStr,sizeof(buf),"ASK");
break; break;
case DEMOD_NRZ: case DEMOD_NRZ:
sprintf(retStr,"DIRECT/NRZ"); snprintf(retStr,sizeof(buf),"DIRECT/NRZ");
break; break;
case DEMOD_PSK1: case DEMOD_PSK1:
sprintf(retStr,"PSK1"); snprintf(retStr,sizeof(buf),"PSK1");
break; break;
case DEMOD_PSK2: case DEMOD_PSK2:
sprintf(retStr,"PSK2"); snprintf(retStr,sizeof(buf),"PSK2");
break; break;
case DEMOD_PSK3: case DEMOD_PSK3:
sprintf(retStr,"PSK3"); snprintf(retStr,sizeof(buf),"PSK3");
break; break;
case DEMOD_BI: case DEMOD_BI:
sprintf(retStr,"BIPHASE"); snprintf(retStr,sizeof(buf),"BIPHASE");
break; break;
case DEMOD_BIa: case DEMOD_BIa:
sprintf(retStr,"BIPHASEa - (CDP)"); snprintf(retStr,sizeof(buf),"BIPHASEa - (CDP)");
break; break;
default: default:
sprintf(retStr,"(Unknown)"); snprintf(retStr,sizeof(buf),"(Unknown)");
break; break;
} }
return buf; return buf;