Skip to content

关于luaL_loadbufferx_replace的bug #55

@cloudxunuo

Description

@cloudxunuo

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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions