-
Notifications
You must be signed in to change notification settings - Fork 454
Open
Description
luaL_loadbufferx_replace函数中的这部分有问题
// dostring
if (name.Length == (int)size)
{
name = "chunk";
}
例子
如果name = "a1234567890.lua" (文件名的引号不计算在内,name.Length是15)
对应的lua文件的内容是 import("a.lua") (lua文件的内容的引号是计算在内的,所以buffer.size也是15)
name.Length = 15
buffer.size 也刚好是15
这就导致name被篡改成了"chunk",但这是非预期的
这在某些情况下会导致严重异常,这个问题我查了非常久才定位到,希望后续不会有人踩坑
Metadata
Metadata
Assignees
Labels
No labels