diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-02-12 09:30:57 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-02-12 09:30:57 (GMT) |
commit | 5160b7b4f3113bd0e3d614cc50dcfe26c3e451ad (patch) | |
tree | a763bf92a48ed2bd749943aa86571b4337c08edc /generic/tkImgSVGnano.c | |
parent | 31a638e16f02d83d262b19037390280d074b5213 (diff) | |
download | tk-5160b7b4f3113bd0e3d614cc50dcfe26c3e451ad.zip tk-5160b7b4f3113bd0e3d614cc50dcfe26c3e451ad.tar.gz tk-5160b7b4f3113bd0e3d614cc50dcfe26c3e451ad.tar.bz2 |
More MSVC++ 6.0-friendly solution for [822330269b]
Diffstat (limited to 'generic/tkImgSVGnano.c')
-rw-r--r-- | generic/tkImgSVGnano.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/generic/tkImgSVGnano.c b/generic/tkImgSVGnano.c index c9437ab..427b2c0 100644 --- a/generic/tkImgSVGnano.c +++ b/generic/tkImgSVGnano.c @@ -353,7 +353,7 @@ StringReadSVG( NSVGimage *nsvgImage = GetCachedSVG(interp, dataObj, formatObj, &ropts); if (nsvgImage == NULL) { - data = Tcl_GetStringFromObj(dataObj, &length); + data = Tcl_GetStringFromObj(dataObj, &length); nsvgImage = ParseSVGWithOptions(interp, data, length, formatObj, &ropts); } @@ -579,6 +579,7 @@ RasterizeSVG( unsigned char *imgData; Tk_PhotoImageBlock svgblock; double scale; + Tcl_WideUInt wh; (void)srcX; (void)srcY; @@ -593,8 +594,8 @@ RasterizeSVG( } /* Tk Ticket [822330269b] Check potential int overflow in following ckalloc */ - unsigned long long wh = (unsigned long long)w * (unsigned long long)h; - if ( wh > INT_MAX / 4) { + wh = (Tcl_WideUInt)w * (Tcl_WideUInt)h; + if ( w < 0 || h < 0 || wh > INT_MAX / 4) { Tcl_SetObjResult(interp, Tcl_NewStringObj("image size overflow", -1)); Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "IMAGE_SIZE_OVERFLOW", NULL); goto cleanRAST; |