[5/9] gdiplus: fix for GdipGetLineGammaCorrection with test

Nikolay Sivov bunglehead at gmail.com
Tue Sep 2 16:08:19 CDT 2008


Changelog:
    - GdipGetLineGammaCorrection should check result pointer. Test added.

>From 3c414e0ea4845783467b3caa848b0c25342aab69 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Wed, 3 Sep 2008 00:25:39 +0400
Subject:  check pointer in GdipGetLineGammaCorrection with tests

---
 dlls/gdiplus/brush.c       |    2 +-
 dlls/gdiplus/tests/brush.c |   25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c
index b8c5870..8bb807b 100644
--- a/dlls/gdiplus/brush.c
+++ b/dlls/gdiplus/brush.c
@@ -631,7 +631,7 @@ GpStatus WINGDIPAPI GdipGetLineGammaCorrection(GpLineGradient *line,
 {
     TRACE("(%p, %p)\n", line, usinggamma);
 
-    if(!line)
+    if(!line || !usinggamma)
         return InvalidParameter;
 
     *usinggamma = line->gamma;
diff --git a/dlls/gdiplus/tests/brush.c b/dlls/gdiplus/tests/brush.c
index 6711fe4..c9f9826 100644
--- a/dlls/gdiplus/tests/brush.c
+++ b/dlls/gdiplus/tests/brush.c
@@ -145,6 +145,30 @@ static void test_getbounds(void)
     GdipDeleteBrush((GpBrush*) brush);
 }
 
+static void test_getgamma(void)
+{
+    GpStatus status;
+    GpLineGradient *line;
+    GpPointF start, end;
+    BOOL gamma;
+
+    start.X = start.Y = 0.0;
+    end.X = end.Y = 100.0;
+
+    status = GdipCreateLineBrush(&start, &end, (ARGB)0xdeadbeef, 0xdeadbeef, WrapModeTile, &line);
+    expect(Ok, status);
+
+    /* NULL arguments */
+    status = GdipGetLineGammaCorrection(NULL, NULL);
+    expect(InvalidParameter, status);
+    status = GdipGetLineGammaCorrection(line, NULL);
+    expect(InvalidParameter, status);
+    status = GdipGetLineGammaCorrection(NULL, &gamma);
+    expect(InvalidParameter, status);
+
+    GdipDeleteBrush((GpBrush*)line);
+}
+
 START_TEST(brush)
 {
     struct GdiplusStartupInput gdiplusStartupInput;
@@ -162,6 +186,7 @@ START_TEST(brush)
     test_gradientblendcount();
     test_getblend();
     test_getbounds();
+    test_getgamma();
 
     GdiplusShutdown(gdiplusToken);
 }
-- 
1.4.4.4






More information about the wine-patches mailing list