diff --git a/src/loaders/svg/tvgSvgLoaderCommon.h b/src/loaders/svg/tvgSvgLoaderCommon.h index 165bd815..a00ea2aa 100644 --- a/src/loaders/svg/tvgSvgLoaderCommon.h +++ b/src/loaders/svg/tvgSvgLoaderCommon.h @@ -190,10 +190,7 @@ struct SvgLineNode struct SvgImageNode { - float x; - float y; - float w; - float h; + float x, y, w, h; string *href; }; diff --git a/src/loaders/svg/tvgSvgUtil.cpp b/src/loaders/svg/tvgSvgUtil.cpp index c44a5c4b..fbdcb524 100644 --- a/src/loaders/svg/tvgSvgUtil.cpp +++ b/src/loaders/svg/tvgSvgUtil.cpp @@ -269,6 +269,11 @@ string svgUtilURLDecode(const char *src) char a, b; while (*src) { + if (*src <= 0x20) { + ++src; + continue; + } + if (*src == '%' && ((a = src[1]) && (b = src[2])) && (isxdigit(a) && isxdigit(b))) { @@ -293,6 +298,11 @@ string svgUtilBase64Decode(const char *src) decoded.reserve(3*(1+(length >> 2))); while (*src && *(src+1)) { + if (*src <= 0x20) { + ++src; + continue; + } + auto value1 = _base64Value(src[0]); auto value2 = _base64Value(src[1]); decoded += (value1 << 2) + ((value2 & 0x30) >> 4);