[PATCH] ieframe: Clear a being invalidated history entry.

Dmitry Timoshkov dmitry at baikal.ru
Mon Jan 24 08:04:45 CST 2022


update_travellog() in order to clear forward history calls free_travellog_entry() to
invalidate forward history entries, and when later an entry gets reused entry->stream
contains a no longer valid pointer.

This is an alternative patch that fixes a crash while navigating html help file
that I have here.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/ieframe/dochost.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dlls/ieframe/dochost.c b/dlls/ieframe/dochost.c
index 042417b5b17..1ba31c552ed 100644
--- a/dlls/ieframe/dochost.c
+++ b/dlls/ieframe/dochost.c
@@ -384,9 +384,12 @@ static LRESULT WINAPI doc_view_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM l
 
 static void free_travellog_entry(travellog_entry_t *entry)
 {
-    if(entry->stream)
+    if(entry->stream) {
         IStream_Release(entry->stream);
+        entry->stream = NULL;
+    }
     heap_free(entry->url);
+    entry->url = NULL;
 }
 
 static IStream *get_travellog_stream(DocHost *This)
-- 
2.34.1




More information about the wine-devel mailing list