RFR: 8335216: [windows] Missing error check for GetSystemDirectory in glass
Lukasz Kostyra
lkostyra at openjdk.org
Mon Jul 8 14:28:48 UTC 2024
When GetSystemDirectory does not have enough space to output a path to Windows' system directory, it will return a different value than 0 (more notably, the amount of bytes actually needed including null terminator). This was not checked, so the very rare hypothetical situation where Windows' system directory is different than the "standard" `C:\Windows` and longer than MAX_PATH was not properly handled.
For now I simply changed the code to print an error and exit. This could be improved further to instead dynamically allocate space for the system directory though.
Other changes, also mentioned in the issue:
- We use `wchar_t` explicitly here, so I changed `GetSystemDirectory` to `GetSystemDirectoryW` to ensure the code compiles even without UNICODE being defined
- `wcscat_s` can potentially fail for the same reasons as above, so this situation is also handled now.
-------------
Commit messages:
- Improve Windows API use in RoActivationSupport
Changes: https://git.openjdk.org/jfx/pull/1498/files
Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1498&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8335216
Stats: 9 lines in 1 file changed: 7 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jfx/pull/1498.diff
Fetch: git fetch https://git.openjdk.org/jfx.git pull/1498/head:pull/1498
PR: https://git.openjdk.org/jfx/pull/1498
More information about the openjfx-dev
mailing list