https://github.com/Teemperor updated https://github.com/llvm/llvm-project/pull/197389
>From 4f7ea26ce7b6e767e81ad3bf339d60737375665e Mon Sep 17 00:00:00 2001 From: Raphael Isemann <[email protected]> Date: Wed, 13 May 2026 09:37:16 +0100 Subject: [PATCH] [lldb] Fix wrong buffer size when fetching Objective-C classes LLDB calls objc_getRealizedClassList_trylock to fetch the list of realized Objective-C classes. Jim spotted that we currently pass the buffer length in *bytes*, when actually this API takes the buffer length in number of elements. This causes that the Objective-C runtime write more memory that we allocated for it. This can cause that the function calling expression crashes and leaves the Objective-C runtime mutex locked. --- .../ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp index 4ca179d927427..d6a0dd8a4b37b 100644 --- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp +++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp @@ -2245,7 +2245,7 @@ AppleObjCRuntimeV2::DynamicClassInfoExtractor::UpdateISAToDescriptorMap( if (class_buffer_addr != LLDB_INVALID_ADDRESS) { arguments.GetValueAtIndex(index++)->GetScalar() = class_buffer_addr; - arguments.GetValueAtIndex(index++)->GetScalar() = class_buffer_byte_size; + arguments.GetValueAtIndex(index++)->GetScalar() = class_buffer_len; } // Only dump the runtime classes from the expression evaluation if the log is _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
