The structure used a char[1] field at the end for a dynamic size array, the array was supposed to start at offset `sizeof(cfg_block_t) - 1`, respectively 4, which is aligned, but as the sizeof was rounded up (structure padded), practically, the array was no longer starting at the expected offset.
The latest versions of C standard allows use of `char[]` for dynamic size array, maybe we should switch to it. For now I will push this patch.