RFR: 8346881: [ubsan] logSelection.cpp:154:24 / logSelectionList.cpp:72:94 : runtime error: applying non-zero offset 1 to null pointer

Christoph Langer clanger at openjdk.org
Thu Jan 2 13:17:38 UTC 2025


On Thu, 2 Jan 2025 12:59:42 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

> When running jtreg tests on macOS aarch64 with ubsanized binaries, the following error is reported :
> 
> 
> jdk/src/hotspot/share/logging/logSelection.cpp:154:24: runtime error: applying non-zero offset 1 to null pointer
> UndefinedBehaviorSanitizer:DEADLYSIGNAL
> UndefinedBehaviorSanitizer: nested bug in the same thread, aborting.
> 
> 
> (XCode 13.1 was used)
> 
> This can be seen e.g. in these jdk jtreg tests :
> jdk/internal/misc/CDS/ArchivedEnumTest.java
> jdk/jfr/event/gc/collection/TestGCGarbageCollectionEvent.java
> jdk/jfr/startupargs/TestDumpOnExit.java
> 
> There is another issue observed here (also when running on macOS aarch64) , seems this happens in the for loop when incrementing comma_pos
> " for (char *comma_pos = copy, *cur = copy; success && comma_pos != nullptr; cur = comma_pos + 1) { ..."
> 
> 
> src/hotspot/share/logging/logSelectionList.cpp:72:94: runtime error: applying non-zero offset 1 to null pointer
> UndefinedBehaviorSanitizer:DEADLYSIGNAL
> UndefinedBehaviorSanitizer: nested bug in the same thread, aborting.

src/hotspot/share/logging/logSelectionList.cpp line 96:

> 94:     if (comma_pos == nullptr) {
> 95:       break;
> 96:     }

I think this check is not necessary here since it is checked in the for loop condition already - or am I overlooking something?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22903#discussion_r1900866106


More information about the hotspot-runtime-dev mailing list