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:
@@ -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]);
|
||||
|
Reference in New Issue
Block a user