[jdk17u-dev] RFR: 8332825: ubsan: guardedMemory.cpp:35:11: runtime error: null pointer passed as argument 2, which is declared to never be null
Matthias Baesken
mbaesken at openjdk.org
Fri Sep 13 14:23:16 UTC 2024
On Thu, 12 Sep 2024 10:12:54 GMT, Goetz Lindenmaier <goetz at openjdk.org> wrote:
>> Hi Goetz!
>>
>> `innerp` is the result of
>>
>>
>> u_char* get_user_ptr() const {
>> assert(_base_addr != nullptr, "Not wrapping any memory");
>> return _base_addr + sizeof(GuardHeader);
>> }
>>
>>
>> which cannot return null. _base_addr is the result of a malloc and we only ever enter this path if that malloc succeeded. It is also asserted at least twice.
>>
>> Cheers, Thomas
>
> Yes, but the new code checks whether "ptr" is null. That is passed in as an argument.
we call
`GuardedMemory::wrap_copy(no_data, 0);`
This makes `ptr == NULL / nullptr` .
See the full backtrace here https://github.com/openjdk/jdk/pull/19382
It is a clean backport so should be the same in 17. The check was added to handle to no_data / length 0 case .
-------------
PR Review Comment: https://git.openjdk.org/jdk17u-dev/pull/2829#discussion_r1758955665
More information about the jdk-updates-dev
mailing list