From acecdbff1f57e5d828a3f04ef5122af090909b01 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 21 Dec 2025 11:41:33 +0800 Subject: [PATCH] fix(api,lua): handle converting NULL funcref/partial (#37060) This fixes the Coverity warnings. --- src/nvim/api/private/converter.c | 5 +++-- src/nvim/lua/converter.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/nvim/api/private/converter.c b/src/nvim/api/private/converter.c index 3159a305d8..7a1b715fef 100644 --- a/src/nvim/api/private/converter.c +++ b/src/nvim/api/private/converter.c @@ -76,8 +76,9 @@ static Object typval_cbuf_to_obj(EncodedData *edata, const char *data, size_t le #define TYPVAL_ENCODE_CONV_FUNC_START(tv, fun, prefix) \ do { \ - ufunc_T *fp = find_func(fun); \ - if (fp != NULL && (fp->uf_flags & FC_LUAREF)) { \ + const char *const fun_ = (fun); \ + ufunc_T *fp; \ + if (fun_ != NULL && (fp = find_func(fun_)) != NULL && fp->uf_flags & FC_LUAREF) { \ kvi_push(edata->stack, LUAREF_OBJ(api_new_luaref(fp->uf_luaref))); \ } else { \ TYPVAL_ENCODE_CONV_NIL(tv); \ diff --git a/src/nvim/lua/converter.c b/src/nvim/lua/converter.c index 669ad31860..f971ed5fb7 100644 --- a/src/nvim/lua/converter.c +++ b/src/nvim/lua/converter.c @@ -455,8 +455,9 @@ static bool typval_conv_special = false; #define TYPVAL_ENCODE_CONV_FUNC_START(tv, fun, prefix) \ do { \ - ufunc_T *fp = find_func(fun); \ - if (fp != NULL && fp->uf_flags & FC_LUAREF) { \ + const char *const fun_ = (fun); \ + ufunc_T *fp; \ + if (fun_ != NULL && (fp = find_func(fun_)) != NULL && fp->uf_flags & FC_LUAREF) { \ nlua_pushref(lstate, fp->uf_luaref); \ } else { \ TYPVAL_ENCODE_CONV_NIL(tv); \