Module: wine Branch: master Commit: d45d54ef181289e0bdc53a9f5981625982c99a11 URL: https://source.winehq.org/git/wine.git/?a=commit;h=d45d54ef181289e0bdc53a9f5...
Author: Alex Henrie alexhenrie24@gmail.com Date: Mon Dec 20 07:43:24 2021 +0000
win32u: Fix memory leak on error path in PATH_WidenPath (cppcheck).
Signed-off-by: Alex Henrie alexhenrie24@gmail.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/win32u/path.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/win32u/path.c b/dlls/win32u/path.c index 05123a2f2e4..a87a7ab06c2 100644 --- a/dlls/win32u/path.c +++ b/dlls/win32u/path.c @@ -1616,7 +1616,7 @@ BOOL WINAPI NtGdiFlattenPath( HDC hdc ) static struct gdi_path *PATH_WidenPath(DC *dc) { INT i, j, numStrokes, penWidth, penWidthIn, penWidthOut, size, penStyle; - struct gdi_path *flat_path, *pNewPath, **pStrokes = NULL, *pUpPath, *pDownPath; + struct gdi_path *flat_path, *pNewPath, **pStrokes = NULL, **new_strokes, *pUpPath, *pDownPath; EXTLOGPEN *elp; BYTE *type; DWORD obj_type, joint, endcap, penType; @@ -1681,12 +1681,14 @@ static struct gdi_path *PATH_WidenPath(DC *dc) case PT_MOVETO: numStrokes++; j = 0; - pStrokes = realloc( pStrokes, numStrokes * sizeof(*pStrokes) ); - if(!pStrokes) + new_strokes = realloc( pStrokes, numStrokes * sizeof(*pStrokes) ); + if (!new_strokes) { free_gdi_path(flat_path); + free(pStrokes); return NULL; } + pStrokes = new_strokes; pStrokes[numStrokes - 1] = alloc_gdi_path(0); /* fall through */ case PT_LINETO: