diff --git a/src/lib_package.c b/src/lib_package.c index 5d8eb25d..b6917121 100644 --- a/src/lib_package.c +++ b/src/lib_package.c @@ -237,7 +237,12 @@ static const char *mksymname(lua_State *L, const char *modname, static int ll_loadfunc(lua_State *L, const char *path, const char *name, int r) { - void **reg = ll_register(L, path); + void **reg; + if (strlen(path) >= 4096) { + lua_pushliteral(L, "path too long"); + return PACKAGE_ERR_LIB; + } + reg = ll_register(L, path); if (*reg == NULL) *reg = ll_load(L, path, (*name == '*')); if (*reg == NULL) { return PACKAGE_ERR_LIB; /* Unable to load library. */