From: Drew Ronneberg Subject: [PATCH] winemenubuilder: Replace open_icon() calls with open_module_icon() in open_file_type_icon() Message-Id: <582698695.610237.1418695912909.JavaMail.yahoo@jws10622.mail.bf1.yahoo.com> Date: Tue, 16 Dec 2014 02:11:52 +0000 (UTC) From 3ba4b4556850694e6a0318a498bce3325dc1175e Mon Sep 17 00:00:00 2001 From: Drew Ronneberg Date: Sat, 22 Nov 2014 13:39:43 -0500 Subject: winemenubuilder: Replace open_icon() calls with open_module_icon() in open_file_type_icon() try2: Prevent recursion by calling open_module_icon() instead of open_icon() Macromedia FreeHand 9 demo had an application bug whereby it gives an incorrect path to a file association default icon. Winemenubuilder doesn't check to make sure that the file exists before calling open_icon() from open_file_type_icon(), which leads to a open_icon() -> open_file_type_icon() -> open_icon() recursion until the stack overflows. Many thanks to AF for analyzing this bug (#35230) --- programs/winemenubuilder/winemenubuilder.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c index 5d3bb27..fae89f9 100644 --- a/programs/winemenubuilder/winemenubuilder.c +++ b/programs/winemenubuilder/winemenubuilder.c @@ -1028,13 +1028,13 @@ static HRESULT open_file_type_icon(LPCWSTR szFileName, IStream **ppStream) *comma = 0; index = atoiW(comma + 1); } - hr = open_icon(icon, index, FALSE, ppStream); + hr = open_module_icon(icon, index, ppStream); } else { executable = assoc_query(ASSOCSTR_EXECUTABLE, extension, openW); if (executable) - hr = open_icon(executable, 0, FALSE, ppStream); + hr = open_module_icon(executable, 0, ppStream); } end: -- 1.9.1