From 868c98b75e3f9ccfe2543aec24ee5850cd6088be Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Mon, 21 Apr 2008 16:15:58 -0700 Subject: [PATCH 2/2] gdiplus: do not access freed memory in a test. --- dlls/gdiplus/tests/graphics.c | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-) diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c index edd98d7..77f1597 100644 --- a/dlls/gdiplus/tests/graphics.c +++ b/dlls/gdiplus/tests/graphics.c @@ -72,20 +72,30 @@ static void check_no_duplicates(node * log) { INT dups = 0; node * temp = NULL; + node * temp2 = NULL; + node * orig = log; if(!log) goto end; do{ - HeapFree(GetProcessHeap(), 0, temp); temp = log; - while((temp = temp->next)) - if(log->data == temp->data) + while((temp = temp->next)){ + if(log->data == temp->data){ dups++; - + break; + } + if(dups > 0) + break; + } }while((log = log->next)); - HeapFree(GetProcessHeap(), 0, temp); + temp = orig; + do{ + temp2 = temp->next; + HeapFree(GetProcessHeap(), 0, temp); + temp = temp2; + }while(temp); end: expect(0, dups); -- 1.5.3.6