JS_PrintValue 在重入写回调后可以读取已拆分的 TypedArray 存储
作者: Sn0wyDay创建于 2026年9月12日更新于 2026年9月12日
`JS_PrintValue()` 允许嵌入器提供的写回调函数。如果该回调函数在相同上下文中重新进入,并在打印 TypedArray 时拆离了支持的 `ArrayBuffer`,则 `js_print_object()` 将继续迭代使用缓存的计数,并读取现在为空的数据指针。在当前的 `master`(`04be246001599f5995fa2f2d8c91a0f198d3f34c`) 上,ASan/UBSan 将报告 `NULL + 1`,然后从地址 `0x1` 上第二个元素读取数据。当前的 `quickjs.c` Blob 与动态测试的 `e3716a4fa87f296f5486094fb29b516941ed9471` 相同。触发器仅使用公共 API:
内容来源: bellard/quickjs