Module: wine Branch: master Commit: 7a441eafb4f4b42a48b95e151fe2a3c2c7b59471 URL: https://gitlab.winehq.org/wine/wine/-/commit/7a441eafb4f4b42a48b95e151fe2a3c...
Author: Alex Henrie alexhenrie24@gmail.com Date: Sun Dec 11 21:58:41 2022 -0700
dbghelp: Handle memory allocation failure in image_locate_build_id_target (cppcheck).
---
dlls/dbghelp/module.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c index 51ade962937..c0c47b859f4 100644 --- a/dlls/dbghelp/module.c +++ b/dlls/dbghelp/module.c @@ -660,6 +660,7 @@ static BOOL image_locate_build_id_target(struct image_file_map* fmap, const BYTE
p = malloc(sizeof(L"/usr/lib/debug/.build-id/") + (idlen * 2 + 1) * sizeof(WCHAR) + sizeof(L".debug")); + if (!p) goto fail; wcscpy(p, L"/usr/lib/debug/.build-id/"); z = p + wcslen(p); if (idlen) @@ -684,9 +685,11 @@ static BOOL image_locate_build_id_target(struct image_file_map* fmap, const BYTE sz = GetEnvironmentVariableW(L"WINEHOMEDIR", NULL, 0); if (sz) { - p = realloc(p, sz * sizeof(WCHAR) + + z = realloc(p, sz * sizeof(WCHAR) + sizeof(L"\.cache\debuginfod_client\") + idlen * 2 * sizeof(WCHAR) + sizeof(L"\debuginfo") + 500); + if (!z) goto fail; + p = z; GetEnvironmentVariableW(L"WINEHOMEDIR", p, sz); z = p + sz - 1; wcscpy(z, L"\.cache\debuginfod_client\"); @@ -703,6 +706,7 @@ static BOOL image_locate_build_id_target(struct image_file_map* fmap, const BYTE }
TRACE("not found\n"); +fail: free(p); HeapFree(GetProcessHeap(), 0, fmap_link); return FALSE;