Mercurial > vim
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 { |