Merge pull request #1121 from bpay/fix-buffer-overflows

Fix buffer overflows
This commit is contained in:
Luis Anton Rebollo 2015-02-02 20:15:51 +01:00
commit cc9be50422
20 changed files with 112 additions and 114 deletions

View file

@ -423,7 +423,7 @@ U32 GFont::getStrNWidth(const UTF8 *str, U32 n)
{
// UTF8 conversion is expensive. Avoid converting in a tight loop.
FrameTemp<UTF16> str16(n + 1);
convertUTF8toUTF16(str, str16, n + 1);
convertUTF8toUTF16N(str, str16, n + 1);
return getStrNWidth(str16, dStrlen(str16));
}
@ -462,7 +462,7 @@ U32 GFont::getStrNWidth(const UTF16 *str, U32 n)
U32 GFont::getStrNWidthPrecise(const UTF8 *str, U32 n)
{
FrameTemp<UTF16> str16(n + 1);
convertUTF8toUTF16(str, str16, n + 1);
convertUTF8toUTF16N(str, str16, n + 1);
return getStrNWidthPrecise(str16, dStrlen(str16));
}

View file

@ -148,8 +148,8 @@ U32 GFXDrawUtil::drawTextN( GFont *font, const Point2I &ptDraw, const UTF8 *in_s
// Convert to UTF16 temporarily.
n++; // space for null terminator
FrameTemp<UTF16> ubuf( n * sizeof(UTF16) );
convertUTF8toUTF16(in_string, ubuf, n);
FrameTemp<UTF16> ubuf( n );
convertUTF8toUTF16N(in_string, ubuf, n);
return drawTextN( font, ptDraw, ubuf, n, colorTable, maxColorIndex, rot );
}