On Thu, 21 Aug 2025 06:35:44 GMT, David Holmes <[email protected]> wrote:
>> src/hotspot/os/aix/os_aix.cpp line 1055:
>>
>>> 1053: if (ebuf != nullptr && ebuflen > 0) {
>>> 1054: os::snprintf_checked(ebuf, ebuflen - 1, "%s, LIBPATH=%s,
>>> LD_LIBRARY_PATH=%s : %s",
>>> 1055: filename, ::getenv("LIBPATH"),
>>> ::getenv("LD_LIBRARY_PATH"), error_report);
>>
>> Suggestion:
>>
>> (void) os::snprintf(ebuf, ebuflen - 1, "%s, LIBPATH=%s,
>> LD_LIBRARY_PATH=%s : %s",
>> filename, ::getenv("LIBPATH"),
>> ::getenv("LD_LIBRARY_PATH"), error_report);
>>
>> This could easily truncate, based on LIBPATH and LD_LIBRARY_PATH.
>
> Yes but again if that happens during testing we need to know and fix the
> buffer size to get the non-truncated values.
In this case the buffer size comes from shared code. Whatever size we choose
for the static buffer, we can trigger the assert by setting LIBPATH and
LD_LIBRARY_PATH to very long strings. This is just the error message, so it
might be OK to truncate it. Otherwise we could need to allocate the buffer
using malloc.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26849#discussion_r2290181959