From abe8b71bf564ed60f7ec3a4cf6a4822516b8284e Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 19 Jan 2014 08:20:45 +0000 Subject: [PATCH] [msconfig] strsafe++ svn path=/trunk/; revision=61682 --- .../base/applications/msconfig/freeldrpage.c | 22 ++++++++++++++----- reactos/base/applications/msconfig/precomp.h | 1 + .../base/applications/msconfig/systempage.c | 10 +++++++-- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/reactos/base/applications/msconfig/freeldrpage.c b/reactos/base/applications/msconfig/freeldrpage.c index d1ed529d3fc..41f4e11be73 100644 --- a/reactos/base/applications/msconfig/freeldrpage.c +++ b/reactos/base/applications/msconfig/freeldrpage.c @@ -33,15 +33,27 @@ LoadBootIni(WCHAR *szDrive, HWND hDlg) FILE * file; UINT length; LRESULT pos; + HRESULT hr; - wcscpy(szBuffer, szDrive); - wcscat(szBuffer, L"freeldr.ini"); + hr = StringCbCopyW(szBuffer, sizeof(szBuffer), szDrive); + if (FAILED(hr)) + return FALSE; + + hr = StringCbCatW(szBuffer, sizeof(szBuffer), L"freeldr.ini"); + if (FAILED(hr)) + return FALSE; file = _wfopen(szBuffer, L"rt"); if (!file) { - wcscpy(szBuffer, szDrive); - wcscat(szBuffer, L"boot.ini"); + hr = StringCbCopyW(szBuffer, sizeof(szBuffer), szDrive); + if (FAILED(hr)) + return FALSE; + + hr = StringCbCatW(szBuffer, sizeof(szBuffer), L"boot.ini"); + if (FAILED(hr)) + return FALSE; + file = _wfopen(szBuffer, L"rt"); if (!file) return FALSE; @@ -137,7 +149,7 @@ FreeLdrPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) if (pos != LB_ERR) { LPARAM res = SendMessage((HWND)lParam, LB_GETITEMDATA, pos, 0); - if (!res) //line is not a default one + if (!res) /* line is not a default one */ SendMessage((HWND)lParam, LB_SETCURSEL, Settings.szDefaultPos, 0); else Settings.szDefaultPos = pos; diff --git a/reactos/base/applications/msconfig/precomp.h b/reactos/base/applications/msconfig/precomp.h index 70af3be3d4a..5aea3aa0d85 100644 --- a/reactos/base/applications/msconfig/precomp.h +++ b/reactos/base/applications/msconfig/precomp.h @@ -11,6 +11,7 @@ #include #include #include +#include #include "msconfig.h" #include "resource.h" diff --git a/reactos/base/applications/msconfig/systempage.c b/reactos/base/applications/msconfig/systempage.c index aad0b8c5dfc..bde2f5f5cc1 100644 --- a/reactos/base/applications/msconfig/systempage.c +++ b/reactos/base/applications/msconfig/systempage.c @@ -23,9 +23,15 @@ LoadSystemIni(WCHAR * szPath, HWND hDlg) FILE* file; UINT length; TVINSERTSTRUCT insert; + HRESULT hr; - wcscpy(szBuffer, szPath); - wcscat(szBuffer, L"\\system.ini"); + hr = StringCbCopyW(szBuffer, sizeof(szBuffer), szPath); + if (FAILED(hr)) + return FALSE; + + hr = StringCbCatW(szBuffer, sizeof(szBuffer), L"\\system.ini"); + if (FAILED(hr)) + return FALSE; file = _wfopen(szBuffer, L"rt"); if (!file)