Skip to content

Commit

Permalink
Glibc >= 2.41 still need to be hacked if the old world app insists to…
Browse files Browse the repository at this point in the history
… use statx directly
  • Loading branch information
xry111 committed Jul 4, 2024
1 parent be4dc08 commit fe9bb43
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions docs/world-compat-details/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -688,8 +688,11 @@ glibc 提供了两个函数,可以被用于注册信号处理函数,这两
因此只能放行(在低版本新世界龙架构内核中不存在的)`fstat` ,并通过 `SIGSYS` 的钩子[检查](https://chromium.googlesource.com/chromium/src/sandbox/+/b3267c8b40b6133b2db5475caed8f6722837a95e%5E%21/#F2) `newfstatat` 并将其重写为 `fstat`

为了能让这部分程序正常运行,如果 Glibc 版本低于 2.41,或其被配置为与低于
6.11 版本的内核相兼容,则需要调整上述函数的行为,当 `statx` 返回 `ENOSYS` 时,
改为使用 `fstat``newfstatat`;同时,如果新世界内核版本低于 6.11,则需要为其补充 `fstat``newfstatat` 的实现。
6.11 版本的内核相兼容,或程序没有通过 Glibc 的 `*stat*` 包装器,
而是直接调用了 `statx`,则需要调整上述函数的行为,当 `statx` 返回 `ENOSYS`
时,改为使用 `fstat``newfstatat`
同时,如果新世界内核版本低于 6.11,则需要为其补充 `fstat``newfstatat`
的实现。

glibc 中下列导出函数涉及 `fstat``newfstatat`,为兼容目前尚未适配 `statx` 的 Chromium 的沙箱机制,需要额外的兼容性处理:

Expand Down

0 comments on commit fe9bb43

Please sign in to comment.