瀏覽代碼

Limit path length passed to C library loader.

Mike Pall 5 年之前
父節點
當前提交
90e65514dd
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      src/lib_package.c

+ 6 - 1
src/lib_package.c

@@ -208,7 +208,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. */