From fb066caea8a6bbf5b7a6fbe1ca51282e2c7c1ff2 Mon Sep 17 00:00:00 2001 From: Alexey Semenyuk Date: Tue, 28 Jan 2025 13:51:04 +0000 Subject: [PATCH] 8347272: [ubsan] JvmLauncher.cpp:262:52: runtime error: applying non-zero offset 40 to null pointer Reviewed-by: almatvee, mbaesken --- src/jdk.jpackage/share/native/applauncher/JvmLauncher.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/jdk.jpackage/share/native/applauncher/JvmLauncher.cpp b/src/jdk.jpackage/share/native/applauncher/JvmLauncher.cpp index 5997b80fa5f..83f45c2cdfe 100644 --- a/src/jdk.jpackage/share/native/applauncher/JvmLauncher.cpp +++ b/src/jdk.jpackage/share/native/applauncher/JvmLauncher.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -259,7 +259,8 @@ private: int initJvmlLauncherData(JvmlLauncherData* ptr) const { // Store path to JLI library just behind JvmlLauncherData header. - char* curPtr = reinterpret_cast(ptr + 1); + JvmlLauncherData dummy; + char* curPtr = reinterpret_cast((ptr ? ptr : &dummy) + 1); { const size_t count = sizeof(char) * (jliLibPath.size() + 1 /* trailing zero */); @@ -304,7 +305,7 @@ private: curPtr = copyStrings(envVarValues, ptr, offsetof(JvmlLauncherData, envVarValues), curPtr); - const size_t bufferSize = curPtr - reinterpret_cast(ptr); + const size_t bufferSize = curPtr - reinterpret_cast(ptr ? ptr : &dummy); if (ptr) { LOG_TRACE(tstrings::any() << "Initialized " << bufferSize << " bytes at " << ptr << " address");