comparison src/syntax.c @ 17659:121bdff812b4 v8.1.1827

patch 8.1.1827: allocating more memory than needed for extended structs commit https://github.com/vim/vim/commit/47ed553fd5bebfc36eb8aa81686eeaa5a84eccac Author: Bram Moolenaar <Bram@vim.org> Date: Thu Aug 8 20:49:14 2019 +0200 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)
author Bram Moolenaar <Bram@vim.org>
date Thu, 08 Aug 2019 21:00:07 +0200
parents 5462bb963075
children 04245f071792
comparison
equal deleted inserted replaced
17658:0d763089ba7f 17659:121bdff812b4
4392 if (curwin->w_s->b_syn_ic) 4392 if (curwin->w_s->b_syn_ic)
4393 name_ic = str_foldcase(name, (int)STRLEN(name), 4393 name_ic = str_foldcase(name, (int)STRLEN(name),
4394 name_folded, MAXKEYWLEN + 1); 4394 name_folded, MAXKEYWLEN + 1);
4395 else 4395 else
4396 name_ic = name; 4396 name_ic = name;
4397 kp = alloc(sizeof(keyentry_T) + STRLEN(name_ic)); 4397 kp = alloc(offsetof(keyentry_T, keyword) + STRLEN(name_ic) + 1);
4398 if (kp == NULL) 4398 if (kp == NULL)
4399 return; 4399 return;
4400 STRCPY(kp->keyword, name_ic); 4400 STRCPY(kp->keyword, name_ic);
4401 kp->k_syn.id = id; 4401 kp->k_syn.id = id;
4402 kp->k_syn.inc_tag = current_syn_inc_tag; 4402 kp->k_syn.inc_tag = current_syn_inc_tag;