comparison src/userfunc.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 e5397617d6ca
children 1726c2db81bf
comparison
equal deleted inserted replaced
17658:0d763089ba7f 17659:121bdff812b4
286 char_u *p; 286 char_u *p;
287 char_u name[20]; 287 char_u name[20];
288 288
289 sprintf((char*)name, "<lambda>%d", ++lambda_no); 289 sprintf((char*)name, "<lambda>%d", ++lambda_no);
290 290
291 fp = alloc_clear(sizeof(ufunc_T) + STRLEN(name)); 291 fp = alloc_clear(offsetof(ufunc_T, uf_name) + STRLEN(name) + 1);
292 if (fp == NULL) 292 if (fp == NULL)
293 goto errret; 293 goto errret;
294 pt = ALLOC_CLEAR_ONE(partial_T); 294 pt = ALLOC_CLEAR_ONE(partial_T);
295 if (pt == NULL) 295 if (pt == NULL)
296 goto errret; 296 goto errret;
2629 semsg(_("E746: Function name does not match script file name: %s"), name); 2629 semsg(_("E746: Function name does not match script file name: %s"), name);
2630 goto erret; 2630 goto erret;
2631 } 2631 }
2632 } 2632 }
2633 2633
2634 fp = alloc_clear(sizeof(ufunc_T) + STRLEN(name)); 2634 fp = alloc_clear(offsetof(ufunc_T, uf_name) + STRLEN(name) + 1);
2635 if (fp == NULL) 2635 if (fp == NULL)
2636 goto erret; 2636 goto erret;
2637 2637
2638 if (fudi.fd_dict != NULL) 2638 if (fudi.fd_dict != NULL)
2639 { 2639 {