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)
|
void MacroError(wxChar *buffer)
|
||||||
{
|
{
|
||||||
wxString errBuf;
|
wxString errBuf;
|
||||||
wxChar macroBuf[200];
|
wxChar macroBuf[30];
|
||||||
macroBuf[0] = '\\';
|
macroBuf[0] = wxT('\\');
|
||||||
int i = 1;
|
int i = 1;
|
||||||
wxChar ch;
|
wxChar ch;
|
||||||
while (((ch = buffer[i-1]) != '\n') && (ch != 0))
|
while (((i < 30) && (ch = buffer[i-1]) != wxT('\n')) && (ch != 0))
|
||||||
{
|
{
|
||||||
macroBuf[i] = ch;
|
macroBuf[i] = ch;
|
||||||
i ++;
|
i ++;
|
||||||
}
|
}
|
||||||
macroBuf[i] = 0;
|
macroBuf[i] = 0;
|
||||||
if (i > 20)
|
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"),
|
errBuf.Printf(_T("Could not find macro: %s at line %d, file %s"),
|
||||||
macroBuf, (int)(LineNumbers[CurrentInputIndex]-1), FileNames[CurrentInputIndex]);
|
macroBuf, (int)(LineNumbers[CurrentInputIndex]-1), FileNames[CurrentInputIndex]);
|
||||||
|
Reference in New Issue
Block a user