CODE128: suppress cppcheck out-of-bounds warning; plus others (#233)

This commit is contained in:
gitlost
2021-07-07 13:58:04 +01:00
parent 3e995c70fb
commit f03da2f4ba
12 changed files with 49 additions and 47 deletions

View File

@ -236,15 +236,18 @@ static void c128_set_a(const unsigned char source, char dest[], int values[], in
* This set handles all characters which are not part of long numbers and not
* control characters.
*/
static void c128_set_b(const unsigned char source, char dest[], int values[], int *bar_chars) {
if (source > 127) {
static int c128_set_b(const unsigned char source, char dest[], int values[], int *bar_chars) {
if (source > 127 + 32) { /* Suppress cppcheck out-of-bounds warning with + 32 check */
strcat(dest, C128Table[source - 32 - 128]);
values[(*bar_chars)] = source - 32 - 128;
} else {
} else if (source <= 127) { /* Suppress cppcheck out-of-bounds warning with <= 127 check */
strcat(dest, C128Table[source - 32]);
values[(*bar_chars)] = source - 32;
} else { /* Should never happen */
return 0; /* Not reached */
}
(*bar_chars)++;
return 1;
}
/* Translate Code 128 Set C characters into barcodes
@ -651,7 +654,7 @@ INTERNAL int code_128(struct zint_symbol *symbol, unsigned char source[], int le
read++;
break;
case 'b':
case 'B': c128_set_b(source[read], dest, values, &bar_characters);
case 'B': (void) c128_set_b(source[read], dest, values, &bar_characters);
read++;
break;
case 'C': c128_set_c(source[read], source[read + 1], dest, values, &bar_characters);
@ -919,7 +922,7 @@ INTERNAL int ean_128_cc(struct zint_symbol *symbol, unsigned char source[], int
break;
case 'B':
case 'b':
c128_set_b(reduced[read], dest, values, &bar_characters);
(void) c128_set_b(reduced[read], dest, values, &bar_characters);
read++;
break;
case 'C':