summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-08-08 17:08:05 +0100
committerBram Moolenaar <Bram@vim.org>2022-08-08 17:08:05 +0100
commit1024690c015921b0a458172bc368133f63af1b89 (patch)
tree8a45303ba94fd06f32d5c5e00cafae9524a8bd70
parent6e5c61119a07b513a99baa9618e8182a74fd7e24 (diff)
downloadvim-git-1024690c015921b0a458172bc368133f63af1b89.tar.gz
patch 9.0.0172: trying to allocate zero bytesv9.0.0172
Problem: Trying to allocate zero bytes. Solution: Do not allocate the proptype array when there are none. (closes #10867)
-rw-r--r--src/testdir/test_textprop.vim12
-rw-r--r--src/textprop.c2
-rw-r--r--src/version.c2
3 files changed, 15 insertions, 1 deletions
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 9fae8070a..2a0ffc0ac 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -71,6 +71,18 @@ func Test_proptype_buf()
call assert_fails("call prop_type_add('one', {'bufnr': 98764})", "E158:")
endfunc
+def Test_proptype_add_remove()
+ # add and remove a prop type so that the array is empty
+ prop_type_add('local', {bufnr: bufnr('%')})
+ prop_type_delete('local', {bufnr: bufnr('%')})
+ prop_type_add('global', {highlight: 'ErrorMsg'})
+ prop_add(1, 1, {length: 1, type: 'global'})
+ redraw
+
+ prop_clear(1)
+ prop_type_delete('global')
+enddef
+
def Test_proptype_buf_list()
new
var bufnr = bufnr('')
diff --git a/src/textprop.c b/src/textprop.c
index d5a53d6cb..45023e88d 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -736,7 +736,7 @@ find_type_by_id(hashtab_T *ht, proptype_T ***array, int id)
int low = 0;
int high;
- if (ht == NULL)
+ if (ht == NULL || ht->ht_used == 0)
return NULL;
// Make the loopup faster by creating an array with pointers to
diff --git a/src/version.c b/src/version.c
index 63a0eae2c..dec5fbdfe 100644
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 172,
+/**/
171,
/**/
170,