From 965ed4ba791865b6d92c5df715ff841a6d03bff5 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Thu, 13 Aug 2026 16:08:34 +0800 Subject: [PATCH] Library (Windows): don't assume `DataTableEntry->FullDllName` is null-terminated --- src/common/impl/library.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/impl/library.c b/src/common/impl/library.c index 3c34c79f8..83a315d97 100644 --- a/src/common/impl/library.c +++ b/src/common/impl/library.c @@ -193,7 +193,8 @@ static void ffLibraryIterateDynamicLibsCallback(PLDR_DATA_TABLE_ENTRY DataTableE char path[PATH_MAX * 3]; ULONG outBytes; - if (NT_SUCCESS(RtlUnicodeToUTF8N(path, sizeof(path), &outBytes, DataTableEntry->FullDllName.Buffer, (uint32_t) (DataTableEntry->FullDllName.Length + sizeof(wchar_t))))) { + if (NT_SUCCESS(RtlUnicodeToUTF8N(path, sizeof(path), &outBytes, DataTableEntry->FullDllName.Buffer, DataTableEntry->FullDllName.Length))) { + path[outBytes] = '\0'; struct LibraryIterateDynamicLibsBundle* bundle = (struct LibraryIterateDynamicLibsBundle*) Context; *StopEnumeration = !bundle->callback(path, bundle->userData); }