aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2022-08-20 17:24:28 +0100
committerLewis Russell <lewis6991@gmail.com>2022-08-20 19:05:22 +0100
commit5e1545204394996aa43be214bec688a4cfbaa78e (patch)
tree300a9f9aa87c74cb83f0f3e3a64be1693082b698
parentff5cfcdeab2446459ab59d44ce173ef811902c49 (diff)
downloadrneovim-5e1545204394996aa43be214bec688a4cfbaa78e.tar.gz
rneovim-5e1545204394996aa43be214bec688a4cfbaa78e.tar.bz2
rneovim-5e1545204394996aa43be214bec688a4cfbaa78e.zip
fix(ui): don't allow decor provider with ns_id==0
Fixes #19831
-rw-r--r--src/nvim/decoration_provider.c1
-rw-r--r--src/nvim/highlight.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/decoration_provider.c b/src/nvim/decoration_provider.c
index 95e13b4240..14c1238fa4 100644
--- a/src/nvim/decoration_provider.c
+++ b/src/nvim/decoration_provider.c
@@ -174,6 +174,7 @@ void decor_providers_invoke_end(DecorProviders *providers, char **err)
DecorProvider *get_decor_provider(NS ns_id, bool force)
{
+ assert(ns_id > 0);
size_t i;
size_t len = kv_size(decor_providers);
for (i = 0; i < len; i++) {
diff --git a/src/nvim/highlight.c b/src/nvim/highlight.c
index c26b00df79..d6a18fcf8e 100644
--- a/src/nvim/highlight.c
+++ b/src/nvim/highlight.c
@@ -174,6 +174,11 @@ int ns_get_hl(NS *ns_hl, int hl_id, bool link, bool nodefault)
{
static int recursive = 0;
+ if (*ns_hl == 0) {
+ // ns=0 (the default namespace) does not have a provider so stop here
+ return -1;
+ }
+
if (*ns_hl < 0) {
if (ns_hl_active <= 0) {
return -1;