Hi everyone,
I finally got some time to prepare for a long overdue Zint update, and I might have found a regression bug. It began with the update on 2026-03-11 15:48:24. I only shows the defect barcode on a 64 Bit ARM platform, and I cannot yet reproduce it on my laptop.
I have incuded an image how it looks on ARM.
Here is the code that I use to provoke it.
#include <stdio.h>
#include <string.h>
#include "zint.h"
// gcc main.c -O3 -I ./backend/ zint.a -o test -lm -lpng
int main()
{
char Send[2000] = {0};
char Data[] =
"\x5B\x29\x3E\x7E\x44\x33\x30\x30\x31\x7E\x44\x32\x39\x30\x32\x38\x39\x30\x37\x35\x20\x20\x20\x20\x7E\x44\x32\x39\x20\x20\x20\x7E\x44\x32\x39\x20\x20\x20\x7E\x44\x32\x39\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x47\x45\x4F\x50\x7E\x44\x32\x39\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x30\x30\x31\x7E\x44\x32\x39\x30\x30\x30\x35\x37\x37\x30\x32\x32\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x4E\x7E\x44\x32\x39\x4D\x75\x73\x74\x65\x72\x73\x74\x72\x61\x73\x73\x65\x20\x31\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x55\x6C\x6D\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x4D\x61\x78\x20\x4D\x75\x73\x74\x65\x72\x6D\x61\x6E\x6E\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x7E\x44\x33\x30\x30\x37\x7E\x44\x32\x39\x47\x30\x32\x7E\x44\x32\x39\x30\x7E\x44\x32\x39\x30\x7E\x44\x32\x39\x30\x7E\x44\x32\x39\x7E\x44\x33\x31\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x7E\x44\x33\x31\x30\x36\x37\x30\x34\x31\x33\x38\x38\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x7E\x44\x33\x31\x7E\x44\x33\x31\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x7E\x44\x33\x31\x7E\x44\x33\x31\x7E\x44\x32\x39\x7E\x44\x32\x39\x7E\x44\x32\x39\x7E\x44\x32\x39\x30\x30\x30\x30\x32\x30\x34\x33\x33\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x4B\x47\x4F\x06\x30\x37\x32\x30\x32\x31\x00\x36\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x7E\x44\x32\x39\x7E\x44\x32\x39\x4B\x47\x4F\x06\x30\x37\x32\x30\x32\x31\x00\x36\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x32\x39\x7E\x44\x32\x39\x7E\x44\x33\x30\x30\x37\x7E\x44\x32\x39\x53\x30\x31\x30\x7E\x44\x32\x39\x58\x58\x58\x58\x20\x58\x58\x58\x58\x58\x58\x58\x58\x20\x58\x58\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x7E\x44\x33\x31\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x58\x58\x20\x58\x58\x58\x20\x58\x58\x58\x58\x58\x58\x58\x58\x58\x20\x34\x30\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x7E\x44\x33\x31\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7E\x44\x33\x31\x38\x39\x35\x32\x30\x20\x20\x20\x20\x7E\x44\x33\x31\x32\x37\x36\x7E\x44\x33\x31\x7E\x44\x33\x30\x30\x37\x7E\x44\x32\x39\x53\x30\x32\x30\x7E\x44\x32\x39\x7E\x44\x32\x39\x7E\x44\x32\x39\x7E\x44\x32\x39\x7E\x44\x33\x30\x30\x37\x7E\x44\x32\x39\x53\x30\x33\x30\x7E\x44\x32\x39\x7E\x44\x32\x39";
memcpy(Send,Data,sizeof(Data));
int BinarySize = sizeof(Data);
struct zint_symbol *Symbol = ZBarcode_Create();
Symbol->symbology = BARCODE_AZTEC;
Symbol->input_mode |= DATA_MODE | FAST_MODE;
Symbol->scale = 1.5;
ZBarcode_Encode_and_Print(Symbol,(unsigned char *)Send,BinarySize,0);
}
I will keep trying to reproduce it on my laptop.
Some platform info for the ARM:
CHAR_MIN: 0
char size = 1
short size = 2
int size = 4
long size = 8
long long size = 8
Thanks very much codemonkey, should be fixed with commit [fdaed0] if you could give it a whirl.
Must add ARM testing to the CI....
Related
Commit: [fdaed0]
Brilliant, it works! That was really fast. I thought this one would be hard because of the different platforms. The ticket can be closed!
Good stuff, thanks! Added arm64 build to the CI with commit [aadd94] . (Re closing, I usually leave issues open until the release that fixes them is done.)
Related
Commit: [aadd94]
Actually, as this was introduced after the last release, it does make sense to close it now. Thanks again!