mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 9.1.0270: a few minor issues to fix
The following is a collection of some small fixes: - Problem: Vim9: funcref pointer pt leaks, when function is not found Solution: Free funcref pointer in case of error (fixes: #14254) - Problem: memory leak of crypt state pointer allocation fails Solution: free crypt state pointer properly (fixes: #14253) - Problem: Vim9: Leaking memory when compiling dict fails Solution: Free the memory in case of error (fixes: #14252) - Problem: Coverity complains about derefencing obj_members pointer (after v9.1.0261) Solution: Verify that obj_members ptr is non-null before accessing it References: https://scan5.scan.coverity.com/#/project-view/41242/10101?selectedIssue=1596133 closes: #14412 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -5556,7 +5556,10 @@ ml_encrypt_data(
|
|||||||
|
|
||||||
new_data = alloc(size);
|
new_data = alloc(size);
|
||||||
if (new_data == NULL)
|
if (new_data == NULL)
|
||||||
|
{
|
||||||
|
crypt_free_state(state);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
head_end = (char_u *)(&dp->db_index[dp->db_line_count]);
|
head_end = (char_u *)(&dp->db_index[dp->db_line_count]);
|
||||||
text_start = (char_u *)dp + dp->db_txt_start;
|
text_start = (char_u *)dp + dp->db_txt_start;
|
||||||
text_len = size - dp->db_txt_start;
|
text_len = size - dp->db_txt_start;
|
||||||
|
@@ -555,7 +555,9 @@ parse_argument_types(
|
|||||||
type = &t_any;
|
type = &t_any;
|
||||||
for (int om = 0; om < obj_member_count; ++om)
|
for (int om = 0; om < obj_member_count; ++om)
|
||||||
{
|
{
|
||||||
if (STRCMP(aname, obj_members[om].ocm_name) == 0)
|
if (obj_members != NULL
|
||||||
|
&& STRCMP(aname,
|
||||||
|
obj_members[om].ocm_name) == 0)
|
||||||
{
|
{
|
||||||
type = obj_members[om].ocm_type;
|
type = obj_members[om].ocm_type;
|
||||||
break;
|
break;
|
||||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
270,
|
||||||
/**/
|
/**/
|
||||||
269,
|
269,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -4573,6 +4573,7 @@ exec_instructions(ectx_T *ectx)
|
|||||||
{
|
{
|
||||||
SOURCING_LNUM = iptr->isn_lnum;
|
SOURCING_LNUM = iptr->isn_lnum;
|
||||||
iemsg("ufunc unexpectedly NULL for FUNCREF");
|
iemsg("ufunc unexpectedly NULL for FUNCREF");
|
||||||
|
vim_free(pt);
|
||||||
goto theend;
|
goto theend;
|
||||||
}
|
}
|
||||||
if (fill_partial_and_closure(pt, ufunc,
|
if (fill_partial_and_closure(pt, ufunc,
|
||||||
|
@@ -1561,7 +1561,10 @@ compile_dict(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
|
|||||||
if (d == NULL)
|
if (d == NULL)
|
||||||
return FAIL;
|
return FAIL;
|
||||||
if (generate_ppconst(cctx, ppconst) == FAIL)
|
if (generate_ppconst(cctx, ppconst) == FAIL)
|
||||||
|
{
|
||||||
|
dict_unref(d);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
|
}
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
char_u *key = NULL;
|
char_u *key = NULL;
|
||||||
|
Reference in New Issue
Block a user