aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/private/helpers.c
diff options
context:
space:
mode:
authorWilliam Wong <wnineg@gmail.com>2024-08-13 16:25:29 +0800
committerLewis Russell <me@lewisr.dev>2024-08-14 15:42:55 +0100
commit6bcefad5a671faab202d5359752b75c6619b9e28 (patch)
tree41d13f9e4a30998e8ce72a980f345af06d115e1a /src/nvim/api/private/helpers.c
parent9d74dc3ac5a66d0fd34de125476a92ec0a77ca58 (diff)
downloadrneovim-6bcefad5a671faab202d5359752b75c6619b9e28.tar.gz
rneovim-6bcefad5a671faab202d5359752b75c6619b9e28.tar.bz2
rneovim-6bcefad5a671faab202d5359752b75c6619b9e28.zip
fix(highlight): fix the seg fault caused by the invalid linked hl ids
Diffstat (limited to 'src/nvim/api/private/helpers.c')
-rw-r--r--src/nvim/api/private/helpers.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index 017265e0d3..e00b8c6146 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -774,7 +774,8 @@ int object_to_hl_id(Object obj, const char *what, Error *err)
String str = obj.data.string;
return str.size ? syn_check_group(str.data, str.size) : 0;
} else if (obj.type == kObjectTypeInteger) {
- return MAX((int)obj.data.integer, 0);
+ int id = (int)obj.data.integer;
+ return (1 <= id && id <= highlight_num_groups()) ? id : 0;
} else {
api_set_error(err, kErrorTypeValidation, "Invalid highlight: %s", what);
return 0;