Module: wine Branch: master Commit: 321dfcc7a987d0be5738bdc8642d0531fb6db7d3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=321dfcc7a987d0be5738bdc864...
Author: Lei Zhang thestig@google.com Date: Mon Apr 21 16:15:58 2008 -0700
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);