From 43a2f17342af8f5bf1f5823df9fa0bf0bdfdfce2 Mon Sep 17 00:00:00 2001 From: Matthias Baesken Date: Wed, 29 May 2024 12:38:51 +0000 Subject: [PATCH] 8333149: ubsan : memset on nullptr target detected in jvmtiEnvBase.cpp get_object_monitor_usage Reviewed-by: sspitsyn, mdoerr --- src/hotspot/share/prims/jvmtiEnvBase.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/hotspot/share/prims/jvmtiEnvBase.cpp b/src/hotspot/share/prims/jvmtiEnvBase.cpp index 94472baf27c..9186c0e0e58 100644 --- a/src/hotspot/share/prims/jvmtiEnvBase.cpp +++ b/src/hotspot/share/prims/jvmtiEnvBase.cpp @@ -1557,8 +1557,12 @@ JvmtiEnvBase::get_object_monitor_usage(JavaThread* calling_thread, jobject objec // this object has a heavyweight monitor // null out memory for robustness - memset(ret.waiters, 0, ret.waiter_count * sizeof(jthread *)); - memset(ret.notify_waiters, 0, ret.notify_waiter_count * sizeof(jthread *)); + if (ret.waiters != nullptr) { + memset(ret.waiters, 0, ret.waiter_count * sizeof(jthread *)); + } + if (ret.notify_waiters != nullptr) { + memset(ret.notify_waiters, 0, ret.notify_waiter_count * sizeof(jthread *)); + } if (ret.waiter_count > 0) { // we have contending threads waiting to enter/re-enter the monitor // identify threads waiting to enter and re-enter the monitor