From e9b9a86cd5a555943b87f0ba40c4527561c3c124 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 11 Nov 2023 10:21:14 +0800 Subject: fix(context): don't crash on invalid arg to nvim_get_context (#25977) Note: The crash happens in the second test case when using uninitialized memory, and therefore doesn't happen with ASAN. --- src/nvim/api/vim.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/nvim/api/vim.c') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index c3c619e206..8446f5b383 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -1402,7 +1402,7 @@ Dictionary nvim_get_context(Dict(context) *opts, Error *err) /// Sets the current editor state from the given |context| map. /// /// @param dict |Context| map. -Object nvim_load_context(Dictionary dict) +Object nvim_load_context(Dictionary dict, Error *err) FUNC_API_SINCE(6) { Context ctx = CONTEXT_INIT; @@ -1410,8 +1410,8 @@ Object nvim_load_context(Dictionary dict) int save_did_emsg = did_emsg; did_emsg = false; - ctx_from_dict(dict, &ctx); - if (!did_emsg) { + ctx_from_dict(dict, &ctx, err); + if (!ERROR_SET(err)) { ctx_restore(&ctx, kCtxAll); } -- cgit