diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib_package.c | 7 |
1 files changed, 6 insertions, 1 deletions
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, | |||
| 237 | 237 | ||
| 238 | static int ll_loadfunc(lua_State *L, const char *path, const char *name, int r) | 238 | static int ll_loadfunc(lua_State *L, const char *path, const char *name, int r) |
| 239 | { | 239 | { |
| 240 | void **reg = ll_register(L, path); | 240 | void **reg; |
| 241 | if (strlen(path) >= 4096) { | ||
| 242 | lua_pushliteral(L, "path too long"); | ||
| 243 | return PACKAGE_ERR_LIB; | ||
| 244 | } | ||
| 245 | reg = ll_register(L, path); | ||
| 241 | if (*reg == NULL) *reg = ll_load(L, path, (*name == '*')); | 246 | if (*reg == NULL) *reg = ll_load(L, path, (*name == '*')); |
| 242 | if (*reg == NULL) { | 247 | if (*reg == NULL) { |
| 243 | return PACKAGE_ERR_LIB; /* Unable to load library. */ | 248 | return PACKAGE_ERR_LIB; /* Unable to load library. */ |
