1
0
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:
Yegappan Lakshmanan
2025-01-19 09:37:07 +01:00
committed by Christian Brabandt
parent 2cb8246eb9
commit 90b397586d
3 changed files with 9 additions and 2 deletions

View File

@@ -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:

View File

@@ -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")

View File

@@ -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,
/**/ /**/