mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
UPCEAN: Check for multiple + characters in input
Fixes #181 reported by Christian Hartlage
This commit is contained in:
parent
0c5dc4d030
commit
ee291e45d6
@ -698,7 +698,7 @@ INTERNAL int eanx(struct zint_symbol *symbol, unsigned char source[], int src_le
|
|||||||
unsigned char first_part[20] = {0}, second_part[20] = {0}, dest[1000] = {0};
|
unsigned char first_part[20] = {0}, second_part[20] = {0}, dest[1000] = {0};
|
||||||
unsigned char local_source[20] = {0};
|
unsigned char local_source[20] = {0};
|
||||||
unsigned int latch, reader, writer, with_addon;
|
unsigned int latch, reader, writer, with_addon;
|
||||||
int error_number, i;
|
int error_number, i, plus_count;
|
||||||
|
|
||||||
|
|
||||||
with_addon = FALSE;
|
with_addon = FALSE;
|
||||||
@ -724,6 +724,18 @@ INTERNAL int eanx(struct zint_symbol *symbol, unsigned char source[], int src_le
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check for multiple '+' characters */
|
||||||
|
plus_count = 0;
|
||||||
|
for (i = 0; i < src_len; i++) {
|
||||||
|
if (source[i] == '+') {
|
||||||
|
plus_count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (plus_count > 1) {
|
||||||
|
strcpy(symbol->errtxt, "293: Invalid add-on data");
|
||||||
|
return ZINT_ERROR_INVALID_DATA;
|
||||||
|
}
|
||||||
|
|
||||||
/* Add leading zeroes */
|
/* Add leading zeroes */
|
||||||
ustrcpy(local_source, (unsigned char *) "");
|
ustrcpy(local_source, (unsigned char *) "");
|
||||||
if (symbol->symbology == BARCODE_ISBNX) {
|
if (symbol->symbology == BARCODE_ISBNX) {
|
||||||
|
Loading…
Reference in New Issue
Block a user