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

View file

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