aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/lua/xdiff.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/lua/xdiff.c b/src/nvim/lua/xdiff.c
index 035c171a14..8d791a7e74 100644
--- a/src/nvim/lua/xdiff.c
+++ b/src/nvim/lua/xdiff.c
@@ -185,7 +185,12 @@ static mmfile_t get_string_arg(lua_State *lstate, int idx)
luaL_argerror(lstate, idx, "expected string");
}
mmfile_t mf;
- mf.ptr = (char *)lua_tolstring(lstate, idx, (size_t *)&mf.size);
+ size_t size;
+ mf.ptr = (char *)lua_tolstring(lstate, idx, &size);
+ if (size > INT_MAX) {
+ luaL_argerror(lstate, idx, "string too long");
+ }
+ mf.size = (int)size;
return mf;
}