patch 8.2.0634: crash with null partial and blob
Problem: Crash with null partial and blob.
Solution: Check for NULL pointer. Add more tests. (Yegappan Lakshmanan,
closes #5984)
diff --git a/src/testdir/test_blob.vim b/src/testdir/test_blob.vim
index 3c15101..46b7b02 100644
--- a/src/testdir/test_blob.vim
+++ b/src/testdir/test_blob.vim
@@ -33,6 +33,7 @@
call assert_fails('let b = 0z.')
call assert_fails('let b = 0z001122.')
call assert_fails('call get("", 1)', 'E896:')
+ call assert_equal(0, len(test_null_blob()))
endfunc
" assignment to a blob
@@ -100,6 +101,7 @@
call assert_equal(999, get(b, 5, 999))
call assert_equal(-1, get(b, -8))
call assert_equal(999, get(b, -8, 999))
+ call assert_equal(10, get(test_null_blob(), 2, 10))
call assert_equal(0x00, b[0])
call assert_equal(0x22, b[2])
@@ -117,6 +119,7 @@
call assert_equal('0z00112233', string(b))
call remove(b, 0, 3)
call assert_equal('0z', string(b))
+ call assert_equal('0z', string(test_null_blob()))
endfunc
func Test_blob_compare()
@@ -251,6 +254,7 @@
call assert_fails("call remove(b, 3, 2)", 'E979:')
call assert_fails("call remove(1, 0)", 'E896:')
call assert_fails("call remove(b, b)", 'E974:')
+ call assert_fails("call remove(test_null_blob(), 1, 2)", 'E979:')
endfunc
func Test_blob_read_write()
@@ -313,6 +317,7 @@
call assert_fails('call insert(b, 0, -20)', 'E475:')
call assert_fails('call insert(b, 0, 20)', 'E475:')
call assert_fails('call insert(b, [])', 'E745:')
+ call assert_equal(0, insert(test_null_blob(), 0x33))
endfunc
func Test_blob_reverse()
@@ -320,6 +325,7 @@
call assert_equal(0zBEADDE, reverse(0zDEADBE))
call assert_equal(0zADDE, reverse(0zDEAD))
call assert_equal(0zDE, reverse(0zDE))
+ call assert_equal(0z, reverse(test_null_blob()))
endfunc
func Test_blob_json_encode()