summaryrefslogtreecommitdiffstats
path: root/generic/tkImgSVGnano.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2021-02-12 09:30:57 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2021-02-12 09:30:57 (GMT)
commit5160b7b4f3113bd0e3d614cc50dcfe26c3e451ad (patch)
treea763bf92a48ed2bd749943aa86571b4337c08edc /generic/tkImgSVGnano.c
parent31a638e16f02d83d262b19037390280d074b5213 (diff)
downloadtk-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.c7
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;