[NOTEPAD]

Patch by EDIJS <terminedijs at yahoo dot com>: Improve window caption string.
By me: use StringCchCat instead of _tcscat to prevent possible buffer overruns.

See issue #5871 for more details.

svn path=/trunk/; revision=50864
This commit is contained in:
Timo Kreuzer 2011-02-22 09:59:49 +00:00
parent 899ae979f5
commit 75e685f7ef
2 changed files with 14 additions and 17 deletions

View file

@ -112,31 +112,27 @@ VOID ShowLastError(void)
/** /**
* Sets the caption of the main window according to Globals.szFileTitle: * Sets the caption of the main window according to Globals.szFileTitle:
* Notepad - (untitled) if no file is open * (untitled) - Notepad if no file is open
* Notepad - [filename] if a file is given * [filename] - Notepad if a file is given
*/ */
static void UpdateWindowCaption(void) static void UpdateWindowCaption(void)
{ {
TCHAR szCaption[MAX_STRING_LEN]; TCHAR szCaption[MAX_STRING_LEN];
TCHAR szUntitled[MAX_STRING_LEN]; TCHAR szNotepad[MAX_STRING_LEN];
LoadString(Globals.hInstance, STRING_NOTEPAD, szCaption, SIZEOF(szCaption)); LoadString(Globals.hInstance, STRING_NOTEPAD, szNotepad, SIZEOF(szNotepad));
if (Globals.szFileTitle[0] != '\0') { if (Globals.szFileTitle[0] != '\0')
static const TCHAR bracket_l[] = _T(" - ["); {
static const TCHAR bracket_r[] = _T("]"); StringCchCat(szCaption, MAX_STRING_LEN, Globals.szFileTitle);
_tcscat(szCaption, bracket_l);
_tcscat(szCaption, Globals.szFileTitle);
_tcscat(szCaption, bracket_r);
} }
else else
{ {
static const TCHAR hyphen[] = _T(" - "); LoadString(Globals.hInstance, STRING_UNTITLED, szCaption, SIZEOF(szCaption));
LoadString(Globals.hInstance, STRING_UNTITLED, szUntitled, SIZEOF(szUntitled));
_tcscat(szCaption, hyphen);
_tcscat(szCaption, szUntitled);
} }
StringCchCat(szCaption, MAX_STRING_LEN, _T(" - "));
StringCchCat(szCaption, MAX_STRING_LEN, szNotepad);
SetWindowText(Globals.hMainWnd, szCaption); SetWindowText(Globals.hMainWnd, szCaption);
} }
@ -684,7 +680,7 @@ VOID DIALOG_EditTimeDate(VOID)
_tcscat(szText, _T(" ")); _tcscat(szText, _T(" "));
GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &st, NULL, szDate, MAX_STRING_LEN); GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &st, NULL, szDate, MAX_STRING_LEN);
_tcscat(szText, szDate); _tcscat(szText, szDate);
SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)szDate); SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)szText);
} }
VOID DoCreateStatusBar(VOID) VOID DoCreateStatusBar(VOID)
@ -766,7 +762,7 @@ VOID DoCreateEditWindow(VOID)
{ {
DWORD dwStyle; DWORD dwStyle;
int iSize; int iSize;
LPTSTR pTemp; LPTSTR pTemp = NULL;
iSize = 0; iSize = 0;

View file

@ -6,6 +6,7 @@
#include <tchar.h> #include <tchar.h>
#include <richedit.h> #include <richedit.h>
#include <malloc.h> #include <malloc.h>
#include <strsafe.h>
#include "main.h" #include "main.h"
#include "dialog.h" #include "dialog.h"