Daniel Lehman : gdi32/tests: Add a test for double-free on repeated calls to Delete[Enh]MetaFile.
Alexandre Julliard
julliard at winehq.org
Thu Jul 22 16:28:19 CDT 2021
Module: wine
Branch: master
Commit: 323416920f4e9c07ba224237a6bd0539803d7709
URL: https://source.winehq.org/git/wine.git/?a=commit;h=323416920f4e9c07ba224237a6bd0539803d7709
Author: Daniel Lehman <dlehman at esri.com>
Date: Thu Jul 22 11:24:15 2021 +0200
gdi32/tests: Add a test for double-free on repeated calls to Delete[Enh]MetaFile.
Signed-off-by: Daniel Lehman <dlehman at esri.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdi32/tests/metafile.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi32/tests/metafile.c b/dlls/gdi32/tests/metafile.c
index 921ac888247..4f72079a615 100644
--- a/dlls/gdi32/tests/metafile.c
+++ b/dlls/gdi32/tests/metafile.c
@@ -3049,7 +3049,13 @@ static void test_metafile_file(void)
EnumMetaFile(0, metafile, mf_enum_proc, 0);
}
- DeleteMetaFile(metafile);
+ ret = DeleteMetaFile(metafile);
+ ok(ret, "Could not delete metafile: %u\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ ret = DeleteMetaFile(metafile);
+ ok(!ret, "DeleteMetaFile succeeded\n");
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "GetLastError() = %u\n", GetLastError());
SetLastError(0xdeadbeef);
metafile = CloseMetaFile(dc);
@@ -3144,7 +3150,13 @@ static void test_enhmetafile_file(void)
dump_emf_records(metafile, "emf_Bezier");
}
- DeleteEnhMetaFile(metafile);
+ ret = DeleteEnhMetaFile(metafile);
+ ok(ret, "Could not delete emf: %u\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ ret = DeleteEnhMetaFile(metafile);
+ ok(!ret, "DeleteEnhMetaFile succeeded\n");
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "GetLastError() = %u\n", GetLastError());
SetLastError(0xdeadbeef);
metafile = CloseEnhMetaFile(dc);
More information about the wine-cvs
mailing list