aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/private/helpers.c
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2022-02-15 13:08:40 -0700
committerGitHub <noreply@github.com>2022-02-15 13:08:40 -0700
commit238b944e58d12a28245be996e69bf36a2a452a90 (patch)
tree363c9b25822888223c4b5f703c615a0a99b9b419 /src/nvim/api/private/helpers.c
parent3449405f38961ac297638ced6377d75cfcb610ca (diff)
downloadrneovim-238b944e58d12a28245be996e69bf36a2a452a90.tar.gz
rneovim-238b944e58d12a28245be996e69bf36a2a452a90.tar.bz2
rneovim-238b944e58d12a28245be996e69bf36a2a452a90.zip
fix(api): validate command names in nvim_add_user_command (#17406)
This uses the same validation used when defining commands with `:command`.
Diffstat (limited to 'src/nvim/api/private/helpers.c')
-rw-r--r--src/nvim/api/private/helpers.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index ddcfff0097..2b107a3f27 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -1384,6 +1384,11 @@ void add_user_command(String name, Object command, Dict(user_command) *opts, int
LuaRef luaref = LUA_NOREF;
LuaRef compl_luaref = LUA_NOREF;
+ if (!uc_validate_name(name.data)) {
+ api_set_error(err, kErrorTypeValidation, "Invalid command name");
+ goto err;
+ }
+
if (mb_islower(name.data[0])) {
api_set_error(err, kErrorTypeValidation, "'name' must begin with an uppercase letter");
goto err;