在 Darwin 的 libacl 的某些版本中,函数中存在一个错误,acl_get_file
其中错误地返回 null 并在传递有效文件的路径时设置errno
为。ENOENT
有相当多的配置脚本可以检查这一点(请参阅这里,例如),但它们都只是通过检查行为来做到这一点。我想知道是否知道 libacl 的哪些特定版本包含该错误,或者我是否只需要进行大量测试才能找到答案。
答案1
唯一的方法是确认不存在错误是为了测试该功能是否按照您期望的方式工作。但如果您只想了解苹果公司对此问题的声明,请访问https://developer.apple.com/并注册成为 Apple 开发者(不需要任何费用)。
注册后,导航至网站的错误报告部分。最初你会遇到一个错误,因为苹果的身份验证系统会告诉你,在登录报告错误之前,你需要注册为开发者。忽略该错误并单击继续访问错误报告站点。
再次登录,您将看到错误查看器界面。您可能无法访问任何错误报告,因此请生成一份新报告,报告该错误acl_get_file
并等待 Apple 的响应。
这是一条漫长的路,但就确认错误已被修复而言,似乎没有其他方法。
答案2
检查这个关联有关 acl.m4 (AC_FUNC_ACL) 的详细信息:当我们检测到 Darwin 8.7.0 的 acl_get_file 错误时,完全禁用 ACL 支持。