fix a buffer overflow (#9596)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@58387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-01-25 12:48:40 +00:00
parent 1c8a2d1b92
commit 3bb1213dbe

View File

@@ -938,18 +938,23 @@ bool ParseNewCommand(wxChar *buffer, int *pos)
void MacroError(wxChar *buffer)
{
wxString errBuf;
wxChar macroBuf[200];
macroBuf[0] = '\\';
wxChar macroBuf[30];
macroBuf[0] = wxT('\\');
int i = 1;
wxChar ch;
while (((ch = buffer[i-1]) != '\n') && (ch != 0))
while (((i < 30) && (ch = buffer[i-1]) != wxT('\n')) && (ch != 0))
{
macroBuf[i] = ch;
i ++;
}
macroBuf[i] = 0;
if (i > 20)
macroBuf[20] = 0;
{
macroBuf[20] = wxT('.');
macroBuf[21] = wxT('.');
macroBuf[22] = wxT('.');
macroBuf[23] = 0;
}
errBuf.Printf(_T("Could not find macro: %s at line %d, file %s"),
macroBuf, (int)(LineNumbers[CurrentInputIndex]-1), FileNames[CurrentInputIndex]);