patch 9.0.1271: using sizeof() and subtract array size is tricky
Problem: Using sizeof() and subtract array size is tricky.
Solution: Use offsetof() instead. (closes #11926)
diff --git a/src/spellfile.c b/src/spellfile.c
index 710e438..bf51f5f 100644
--- a/src/spellfile.c
+++ b/src/spellfile.c
@@ -4305,7 +4305,7 @@
bl = NULL;
else
// Allocate a block of memory. It is not freed until much later.
- bl = alloc_clear(sizeof(sblock_T) + SBLOCKSIZE);
+ bl = alloc_clear(offsetof(sblock_T, sb_data) + SBLOCKSIZE + 1);
if (bl == NULL)
{
if (!spin->si_did_emsg)