patch 8.1.1827: allocating more memory than needed for extended structs
Problem: Allocating more memory than needed for extended structs.
Solution: Use offsetof() instead of sizeof(). (Dominique Pelle,
closes #4786)
diff --git a/src/getchar.c b/src/getchar.c
index 4a3587c..b0e72f5 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -232,7 +232,7 @@
len = MINIMAL_SIZE;
else
len = slen;
- p = alloc(sizeof(buffblock_T) + len);
+ p = alloc(offsetof(buffblock_T, b_str) + len + 1);
if (p == NULL)
return; /* no space, just forget it */
buf->bh_space = (int)(len - slen);