Alexandre Julliard : gdi32: Avoid overflows for invalid coordinates in line clipping.

Alexandre Julliard julliard at winehq.org
Wed Feb 22 14:27:39 CST 2012


Module: wine
Branch: master
Commit: 556267bde446412741e5c209d4090f4a3761e03f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=556267bde446412741e5c209d4090f4a3761e03f

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Feb 22 11:27:58 2012 +0100

gdi32: Avoid overflows for invalid coordinates in line clipping.

---

 dlls/gdi32/dibdrv/objects.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/dlls/gdi32/dibdrv/objects.c b/dlls/gdi32/dibdrv/objects.c
index b6e50cb..a9d6ca5 100644
--- a/dlls/gdi32/dibdrv/objects.c
+++ b/dlls/gdi32/dibdrv/objects.c
@@ -372,7 +372,8 @@ static inline DWORD calc_outcode(const POINT *pt, const RECT *clip)
 int clip_line(const POINT *start, const POINT *end, const RECT *clip,
               const bres_params *params, POINT *pt1, POINT *pt2)
 {
-    int m, n;
+
+    INT64 m, n;  /* 64-bit to avoid overflows (FIXME: find a more efficient way) */
     BOOL clipped = FALSE;
     DWORD start_oc, end_oc;
     const int bias = params->bias;




More information about the wine-cvs mailing list