forked from aniani/vim
patch 9.1.1035: Vim9: memory leak with blob2str()
Problem: Vim9: memory leak with blob2str() Solution: free converted_str (Yegappan Lakshmanan) closes: #16481 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
2cb8246eb9
commit
90b397586d
@@ -1366,9 +1366,10 @@ f_blob2str(typval_T *argvars, typval_T *rettv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (list_append_string(rettv->vval.v_list, converted_str, -1) == FAIL)
|
int ret = list_append_string(rettv->vval.v_list, converted_str, -1);
|
||||||
break;
|
|
||||||
vim_free(converted_str);
|
vim_free(converted_str);
|
||||||
|
if (ret == FAIL)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@@ -4311,6 +4311,10 @@ func Test_blob2str()
|
|||||||
call assert_equal(["🁰🁳"], blob2str(0zF09F81B0.F09F81B3))
|
call assert_equal(["🁰🁳"], blob2str(0zF09F81B0.F09F81B3))
|
||||||
call assert_equal(['«»'], blob2str(0zABBB, {'encoding': 'latin1'}))
|
call assert_equal(['«»'], blob2str(0zABBB, {'encoding': 'latin1'}))
|
||||||
call assert_equal(['«»'], blob2str(0zC2ABC2BB, {'encoding': 'utf8'}))
|
call assert_equal(['«»'], blob2str(0zC2ABC2BB, {'encoding': 'utf8'}))
|
||||||
|
call assert_equal(['«»'], blob2str(0zC2ABC2BB, {'encoding': 'utf-8'}))
|
||||||
|
|
||||||
|
call assert_equal(['a'], blob2str(0z61, test_null_dict()))
|
||||||
|
call assert_equal(['a'], blob2str(0z61, {'encoding': test_null_string()}))
|
||||||
|
|
||||||
#" Invalid encoding
|
#" Invalid encoding
|
||||||
call assert_fails("call blob2str(0z80)", "E1515: Unable to convert from 'utf-8' encoding")
|
call assert_fails("call blob2str(0z80)", "E1515: Unable to convert from 'utf-8' encoding")
|
||||||
|
@@ -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 */
|
||||||
|
/**/
|
||||||
|
1035,
|
||||||
/**/
|
/**/
|
||||||
1034,
|
1034,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user