mirror of
https://git.code.sf.net/p/zint/code
synced 2026-06-10 07:33:43 +00:00
raster/vector: EAN/UPC: fix calculation of image/vector height to
allow for heights smaller than `textoffset` when have add-on (buffer overflow for raster, outside vector height for vector) raster: EAN/UPC: make sure don't overwrite add-on stuff when line-copying guard descenders by limiting copy width ZBarcode_Encode_Segs: allow for multiple (stacked) rows when setting absolute minimum height; state stacked symbols max in error message DBAR_EXP: check length on encoding method 6 before trying to parse 3-digit currency string with `z_to_int()` CLI: stop looping over data args when have error; suppress taint warning by using fixed `malloc()` size for `arg_opts` instead of `argc` general: use `vsnprintf()` instead of `vsprintf()` if not C89 ULTRACODE: don't call `ult_generate_codewords()` if `length` 0 from fragment processing (avoids `assert()`) clang-tidy -> 23 & suppress some warnings test suite: fuzz: leave Z_FUZZ_DEBUG to compiler, fix comment general: some minor code-formatting on touched files README.deb -> README.debian (avoid confusion with actual ".deb") BWIPP: update to latest
This commit is contained in:
+6
-2
@@ -810,6 +810,8 @@ static int ult_generate_codewords_segs(struct zint_symbol *symbol, struct zint_s
|
||||
Note not updating `eci` for GS1 mode as not converted */
|
||||
const int content_segs = !gs1 && (symbol->output_options & BARCODE_CONTENT_SEGS);
|
||||
|
||||
assert(length > 0); /* Suppress clang-tidy-23 clang-analyzer-core.uninitialized.Assign */
|
||||
|
||||
for (i = 0; i < seg_count; i++) {
|
||||
if (segs[i].eci) {
|
||||
have_eci = 1;
|
||||
@@ -908,8 +910,10 @@ static int ult_generate_codewords_segs(struct zint_symbol *symbol, struct zint_s
|
||||
}
|
||||
|
||||
current_mode = symbol_mode;
|
||||
codeword_count = ult_generate_codewords(symbol, source, length, 0 /*eci*/, gs1, symbol_mode, ¤t_mode,
|
||||
codewords, codeword_count);
|
||||
if (length > 0) {
|
||||
codeword_count = ult_generate_codewords(symbol, source, length, 0 /*eci*/, gs1, symbol_mode, ¤t_mode,
|
||||
codewords, codeword_count);
|
||||
}
|
||||
if (content_segs && segs[0].eci) {
|
||||
z_ct_set_seg_eci(symbol, 0, segs[0].eci);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user