Fix for buffer overflows identified by libgmalloc

This commit is contained in:
ridiculousfish
2013-10-16 01:02:15 -07:00
parent 4980959fce
commit 3c5d5b344e
2 changed files with 18 additions and 10 deletions

View File

@@ -1503,14 +1503,20 @@ static int mk_wcwidth(wchar_t ucs)
static int mk_wcswidth(const wchar_t *pwcs, size_t n)
{
int w, width = 0;
for (; *pwcs && n-- > 0; pwcs++)
if ((w = mk_wcwidth(*pwcs)) < 0)
return -1;
else
width += w;
int width = 0;
for (size_t i=0; i < n; i++)
{
if (pwcs[i] == L'\0')
break;
int w = mk_wcwidth(pwcs[i]);
if (w < 0)
{
width = -1;
break;
}
width += w;
}
return width;
}