RFR: 8343020: SecureDirectoryStream not supported on MacOS [v3]

David M. Lloyd duke at openjdk.org
Fri Oct 25 16:58:42 UTC 2024


> OpenJDK will not produce SecureDirectoryStreams on MacOS. Support for SecureDirectoryStream on UNIX-like OSes is predicated on the `SUPPORTS_OPENAT` flag in UnixNativeDispatcher. That flag in turn is set when the runtime environment supports `openat`, `fstatat`, `unlinkat`, `renameat`, `futimesat`, and `fdopendir`.
> 
> This fails on MacOS because `futimesat` does not exist on that platform, apparently having been a proposed-but-not-accepted part of POSIX some time ago. While there is an indirect replacement that is supported on MacOS - `utimensat` - this is not actually needed, because the unique functionality provided by `futimesat` (that is, performing the action of `futimes` relative to an open directory file descriptor) is not utilized, since the only place this function is used passes `NULL` as the relative filename argument.
> 
> Replacing this with simply calling `futimes` instead allows `SecureDirectoryStream` to function on MacOS.

David M. Lloyd has updated the pull request incrementally with two additional commits since the last revision:

 - Add bug ID to test
 - Update jtreg SecureDS test to use `@requires` instead of `instanceof` logic

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/21696/files
  - new: https://git.openjdk.org/jdk/pull/21696/files/4572704b..6167680e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=21696&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21696&range=01-02

  Stats: 7 lines in 1 file changed: 1 ins; 4 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/21696.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21696/head:pull/21696

PR: https://git.openjdk.org/jdk/pull/21696


More information about the nio-dev mailing list