diff src/regexp_nfa.c @ 31877:9f28cca2410a v9.0.1271

patch 9.0.1271: using sizeof() and subtract array size is tricky Commit: https://github.com/vim/vim/commit/1b438a8228a415720efb5ca1c0503f5467292e8e Author: zeertzjq <zeertzjq@outlook.com> Date: Wed Feb 1 13:11:15 2023 +0000 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 https://github.com/vim/vim/issues/11926)
author Bram Moolenaar <Bram@vim.org>
date Wed, 01 Feb 2023 14:15:04 +0100
parents 50555279168b
children e70c4cdad31d
line wrap: on
line diff
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -7505,7 +7505,7 @@ nfa_regcomp(char_u *expr, int re_flags)
     post2nfa(postfix, post_ptr, TRUE);
 
     // allocate the regprog with space for the compiled regexp
-    prog_size = sizeof(nfa_regprog_T) + sizeof(nfa_state_T) * (nstate - 1);
+    prog_size = offsetof(nfa_regprog_T, state) + sizeof(nfa_state_T) * nstate;
     prog = alloc(prog_size);
     if (prog == NULL)
 	goto fail;