From 3bb1213dbed5dda3c5e82af40942d2d96ab212f3 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 25 Jan 2009 12:48:40 +0000 Subject: [PATCH] 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 --- utils/tex2rtf/src/tex2any.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/utils/tex2rtf/src/tex2any.cpp b/utils/tex2rtf/src/tex2any.cpp index 33466d1a93..12fcb5b260 100644 --- a/utils/tex2rtf/src/tex2any.cpp +++ b/utils/tex2rtf/src/tex2any.cpp @@ -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]);