forked from aniani/vim
patch 7.4.1565
Problem: Crash when assert_equal() runs into a NULL string. Solution: Check for NULL. (Dominique) Add a test.
This commit is contained in:
@@ -9240,6 +9240,12 @@ ga_concat_esc(garray_T *gap, char_u *str)
|
||||
char_u *p;
|
||||
char_u buf[NUMBUFLEN];
|
||||
|
||||
if (str == NULL)
|
||||
{
|
||||
ga_concat(gap, (char_u *)"NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
for (p = str; *p != NUL; ++p)
|
||||
switch (*p)
|
||||
{
|
||||
|
@@ -48,6 +48,21 @@ func Test_wrong_error_type()
|
||||
call assert_equal(type([]), type(verrors))
|
||||
endfunc
|
||||
|
||||
func Test_compare_fail()
|
||||
let s:v = {}
|
||||
let s:x = {"a": s:v}
|
||||
let s:v["b"] = s:x
|
||||
let s:w = {"c": s:x, "d": ''}
|
||||
try
|
||||
call assert_equal(s:w, '')
|
||||
catch
|
||||
call assert_exception('E724:')
|
||||
call assert_true(v:errors[0] =~ "Expected NULL but got ''")
|
||||
call remove(v:errors, 0)
|
||||
endtry
|
||||
endfunc
|
||||
|
||||
|
||||
func Test_user_is_happy()
|
||||
smile
|
||||
sleep 300m
|
||||
|
@@ -743,6 +743,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1565,
|
||||
/**/
|
||||
1564,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user