[PATCH] gdiplus: Convert and pass in 3 points, not 1 (Coverity)

Vincent Povirk madewokherd at gmail.com
Sun May 29 18:08:44 CDT 2011


Good catch. This sort of thing would have been very hard to track down
in a real app.

On Sun, May 29, 2011 at 4:53 PM, Marcus Meissner <marcus at jet.franken.de> wrote:
> Hi,
>
> CID 1147
> We get 3 points, not 1 ... and also need to pass on 3 points.
>
> Ciao, Marcus
> ---
>  dlls/gdiplus/matrix.c |   12 +++++++-----
>  1 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/dlls/gdiplus/matrix.c b/dlls/gdiplus/matrix.c
> index 1035cc2..acfe989 100644
> --- a/dlls/gdiplus/matrix.c
> +++ b/dlls/gdiplus/matrix.c
> @@ -105,7 +105,8 @@ GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect *rect, GDIPCONST GpPoint
>     GpMatrix **matrix)
>  {
>     GpRectF rectF;
> -    GpPointF ptF;
> +    GpPointF ptF[3];
> +    int i;
>
>     TRACE("(%p, %p, %p)\n", rect, pt, matrix);
>
> @@ -114,10 +115,11 @@ GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect *rect, GDIPCONST GpPoint
>     rectF.Width = (REAL)rect->Width;
>     rectF.Height = (REAL)rect->Height;
>
> -    ptF.X = (REAL)pt->X;
> -    ptF.Y = (REAL)pt->Y;
> -
> -    return GdipCreateMatrix3(&rectF, &ptF, matrix);
> +    for (i = 0; i < 3; i++) {
> +        ptF[i].X = (REAL)pt[i].X;
> +        ptF[i].Y = (REAL)pt[i].Y;
> +    }
> +    return GdipCreateMatrix3(&rectF, ptF, matrix);
>  }
>
>  GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix *matrix, GpMatrix **clone)
> --
> 1.7.3.4
>
>
>
>



More information about the wine-devel mailing list