From 6e2b6b31bae6d69bff5271451e73eb08637b8118 Mon Sep 17 00:00:00 2001 From: Rozhuk Ivan Date: Tue, 2 Dec 2014 03:47:27 +0000 Subject: mir_sntprintf(..., _T("%s"), ...) -> _tcsncpy_s(..., ..., _TRUNCATE) fix some x64 ptr truncations git-svn-id: http://svn.miranda-ng.org/main/trunk@11211 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/AdvaImg/src/main.cpp | 8 ++-- plugins/Alarms/src/alarms.cpp | 8 ++-- plugins/BossKeyPlus/src/BossKey.cpp | 10 ++-- plugins/ChangeKeyboardLayout/src/hook_events.cpp | 2 +- plugins/Clist_modern/src/modern_cachefuncs.cpp | 4 +- plugins/Clist_modern/src/modern_clc.cpp | 2 +- plugins/Clist_modern/src/modern_rowtemplateopt.cpp | 6 +-- plugins/Clist_nicer/src/CLUIFrames/cluiframes.cpp | 2 +- plugins/Clist_nicer/src/clcutils.cpp | 56 ++++++++++++++-------- plugins/ConnectionNotify/src/ConnectionNotify.cpp | 10 ++-- plugins/CrashDumper/src/crshdmp.cpp | 2 +- plugins/ExternalAPI/m_folders.h | 4 +- plugins/FingerprintNG/src/fingerprint.cpp | 4 +- plugins/Folders/src/utils.cpp | 4 +- plugins/IEView/src/TemplateHTMLBuilder.cpp | 4 +- plugins/IEView/src/ieview_services.cpp | 2 +- plugins/KeyboardNotify/src/main.cpp | 12 ++--- plugins/NewAwaySysMod/src/Services.cpp | 2 +- plugins/New_GPG/src/main.cpp | 21 ++++---- plugins/NotesAndReminders/src/reminders.cpp | 2 +- plugins/Scriver/src/infobar.cpp | 4 +- plugins/Scriver/src/msgoptions.cpp | 6 +-- plugins/Scriver/src/msgtimedout.cpp | 2 +- plugins/SimpleStatusMsg/src/awaymsg.cpp | 2 +- plugins/Spamotron/src/popups.cpp | 12 ++--- plugins/TabSRMM/src/chat/log.cpp | 2 +- plugins/TabSRMM/src/chat/main.cpp | 2 +- plugins/TabSRMM/src/chat/options.cpp | 8 ++-- plugins/TabSRMM/src/contactcache.cpp | 6 +-- plugins/TabSRMM/src/container.cpp | 2 +- plugins/TabSRMM/src/containeroptions.cpp | 2 +- plugins/TabSRMM/src/controls.cpp | 2 +- plugins/TabSRMM/src/eventpopups.cpp | 4 +- plugins/TabSRMM/src/generic_msghandlers.cpp | 6 +-- plugins/TabSRMM/src/infopanel.cpp | 5 +- plugins/TabSRMM/src/mim.cpp | 14 ++++-- plugins/TabSRMM/src/msgdlgutils.cpp | 43 +++++++---------- plugins/TabSRMM/src/msgoptions.cpp | 4 +- plugins/TabSRMM/src/sendlater.cpp | 4 +- plugins/TabSRMM/src/sendqueue.cpp | 2 +- plugins/TabSRMM/src/sidebar.cpp | 2 +- plugins/TabSRMM/src/templates.cpp | 2 +- plugins/TabSRMM/src/themeio.cpp | 10 ++-- plugins/TabSRMM/src/themes.cpp | 2 +- plugins/TabSRMM/src/trayicon.cpp | 10 ++-- plugins/TabSRMM/src/utils.cpp | 4 +- plugins/Utils/mir_options.cpp | 7 ++- plugins/Weather/src/weather_conv.cpp | 8 ++-- plugins/YAMN/src/browser/mailbrowser.cpp | 8 ++-- protocols/AimOscar/src/popup.cpp | 2 +- protocols/FacebookRM/src/proto.cpp | 2 +- protocols/Gadu-Gadu/src/image.cpp | 2 +- protocols/IRCG/src/options.cpp | 4 +- protocols/JabberG/src/jabber_chat.cpp | 10 ++-- protocols/JabberG/src/jabber_disco.cpp | 2 +- protocols/JabberG/src/jabber_rc.cpp | 4 +- protocols/JabberG/src/jabber_svc.cpp | 2 +- protocols/JabberG/src/jabber_userinfo.cpp | 6 +-- protocols/MRA/src/Mra_functions.cpp | 2 +- protocols/Sametime/src/files.cpp | 4 +- protocols/Twitter/src/proto.cpp | 2 +- protocols/VKontakte/src/misc.cpp | 6 ++- protocols/Yahoo/src/avatar.cpp | 6 +-- src/core/stdauth/auth.cpp | 2 +- src/core/stdauth/authdialogs.cpp | 8 ++-- src/core/stdchat/src/window.cpp | 2 +- src/core/stdfile/filexferdlg.cpp | 4 +- src/core/stdmsg/src/msgdialog.cpp | 4 +- src/modules/chat/log.cpp | 2 +- src/modules/chat/tools.cpp | 4 +- src/modules/clist/clistmod.cpp | 2 +- src/modules/fonts/FontOptions.cpp | 4 +- src/modules/fonts/services.cpp | 6 ++- src/modules/netlib/netlibautoproxy.cpp | 2 +- src/modules/skin/sounds.cpp | 2 +- src/modules/utils/bmpfilter.cpp | 2 +- src/modules/xml/xmlParser.cpp | 4 +- 77 files changed, 232 insertions(+), 220 deletions(-) diff --git a/plugins/AdvaImg/src/main.cpp b/plugins/AdvaImg/src/main.cpp index 9c7bdb698a..f522f8b499 100644 --- a/plugins/AdvaImg/src/main.cpp +++ b/plugins/AdvaImg/src/main.cpp @@ -294,7 +294,7 @@ static INT_PTR serviceBmpFilterResizeBitmap(WPARAM wParam,LPARAM lParam) && width > bminfo.bmWidth && height > bminfo.bmHeight)) { // Do nothing - return (int) info->hBmp; + return (INT_PTR)info->hBmp; } else { @@ -847,18 +847,18 @@ static INT_PTR serviceLoad(WPARAM wParam, LPARAM lParam) // ok, let's load the file FIBITMAP *dib; - if(lParam & IMGL_WCHAR) + if (lParam & IMGL_WCHAR) dib = FreeImage_LoadU(fif, (wchar_t *)lpszFilename, 0); else dib = FreeImage_Load(fif, lpszFilename, 0); if(dib == NULL || (lParam & IMGL_RETURNDIB)) - return (int)dib; + return (INT_PTR)dib; HBITMAP hbm = FreeImage_CreateHBITMAPFromDIB(dib); FreeImage_Unload(dib); FI_CorrectBitmap32Alpha(hbm, FALSE); - return((INT_PTR)hbm); + return ((INT_PTR)hbm); } return NULL; } diff --git a/plugins/Alarms/src/alarms.cpp b/plugins/Alarms/src/alarms.cpp index c3d3a8e1f7..cf8050f8ec 100644 --- a/plugins/Alarms/src/alarms.cpp +++ b/plugins/Alarms/src/alarms.cpp @@ -107,16 +107,16 @@ static int PluginMessageReceived(WPARAM wParam,LPARAM lParam) TCHAR *savedMsg = ppre->tszMessage; if (!_tcscmp(msg, _T(" ffw"))) { - mir_sntprintf(buff, SIZEOF(buff), _T("%s"), _T("Fast forward!")); + _tcsncpy_s(buff, _T("Fast forward!"), _TRUNCATE); HWND hWnd = FindWindow(0, _T("Windows Media Player")); PostMessage(hWnd, WM_COMMAND, WMP_NEXT, 0); - } - else mir_sntprintf(buff, SIZEOF(buff), TranslateT("Unknown command issued: \"%s\""), msg); + } else + mir_sntprintf(buff, SIZEOF(buff), TranslateT("Unknown command issued: \"%s\""), msg); ShowPopup(pccsd->hContact, buff); - _tcsncpy(response, buff,SIZEOF(response)); + _tcsncpy(response, buff, SIZEOF(response)); PluginSendMessage((WPARAM)pccsd->hContact, (LPARAM)response); return 0; diff --git a/plugins/BossKeyPlus/src/BossKey.cpp b/plugins/BossKeyPlus/src/BossKey.cpp index 309713140c..572a1c364c 100644 --- a/plugins/BossKeyPlus/src/BossKey.cpp +++ b/plugins/BossKeyPlus/src/BossKey.cpp @@ -264,13 +264,11 @@ static void CreateTrayIcon(bool create) { NOTIFYICONDATA nim; DBVARIANT dbVar; - if (!db_get_ts(NULL,MOD_NAME,"ToolTipText",&dbVar)) - { - mir_sntprintf(nim.szTip, 64, _T("%s"), dbVar.ptszVal); + if (!db_get_ts(NULL,MOD_NAME,"ToolTipText",&dbVar)) { + _tcsncpy_s(nim.szTip, dbVar.ptszVal, _TRUNCATE); db_free(&dbVar); - } - else - mir_tstrcpy(nim.szTip, _T("Miranda NG")); + } else + _tcsncpy_s(nim.szTip, _T("Miranda NG"), _TRUNCATE); nim.cbSize = sizeof(nim); nim.hWnd = g_hListenWindow; diff --git a/plugins/ChangeKeyboardLayout/src/hook_events.cpp b/plugins/ChangeKeyboardLayout/src/hook_events.cpp index 8253c9c7ab..9b8d53e7c9 100644 --- a/plugins/ChangeKeyboardLayout/src/hook_events.cpp +++ b/plugins/ChangeKeyboardLayout/src/hook_events.cpp @@ -9,7 +9,7 @@ INT_PTR APIChangeLayout(WPARAM wParam, LPARAM lParam) INT_PTR APIGetLayoutOfText(WPARAM wParam, LPARAM lParam) { LPTSTR ptszInText = (TCHAR*)lParam; - return (int) GetLayoutOfText(ptszInText); + return (INT_PTR)GetLayoutOfText(ptszInText); } INT_PTR APIChangeTextLayout(WPARAM wParam, LPARAM lParam) diff --git a/plugins/Clist_modern/src/modern_cachefuncs.cpp b/plugins/Clist_modern/src/modern_cachefuncs.cpp index a45d9a02dd..1b6fa8b40a 100644 --- a/plugins/Clist_modern/src/modern_cachefuncs.cpp +++ b/plugins/Clist_modern/src/modern_cachefuncs.cpp @@ -465,8 +465,8 @@ int Cache_GetLineText( DBVARIANT dbv = {0}; // Try to get XStatusName if (!db_get_ts(pdnce->hContact, pdnce->m_cache_cszProto, "XStatusName", &dbv)) { - if (dbv.pszVal != NULL && dbv.pszVal[0] != 0) - mir_sntprintf(text, text_size, _T("%s"), dbv.pszVal); + if (dbv.ptszVal != NULL && dbv.ptszVal[0] != 0) + _tcsncpy_s(text, text_size, dbv.ptszVal, _TRUNCATE); CopySkipUnprintableChars(text, text, text_size-1); db_free(&dbv); } diff --git a/plugins/Clist_modern/src/modern_clc.cpp b/plugins/Clist_modern/src/modern_clc.cpp index c234b7d400..873020a36c 100644 --- a/plugins/Clist_modern/src/modern_clc.cpp +++ b/plugins/Clist_modern/src/modern_clc.cpp @@ -1365,7 +1365,7 @@ static LRESULT clcOnLButtonUp(ClcData *dat, HWND hwnd, UINT msg, WPARAM wParam, if (sourceGrName) mir_sntprintf(newName, SIZEOF(newName), _T("%s\\%s"), sourceGrName, shortGroup); else - mir_sntprintf(newName, SIZEOF(newName), _T("%s"), shortGroup); + _tcsncpy_s(newName, shortGroup, _TRUNCATE); } mir_free(groupName); mir_free(sourceGrName); diff --git a/plugins/Clist_modern/src/modern_rowtemplateopt.cpp b/plugins/Clist_modern/src/modern_rowtemplateopt.cpp index 97be36e25a..66581b5271 100644 --- a/plugins/Clist_modern/src/modern_rowtemplateopt.cpp +++ b/plugins/Clist_modern/src/modern_rowtemplateopt.cpp @@ -315,14 +315,14 @@ void RefreshTree(HWND hwndDlg,HTREEITEM hti) if (!cell->child) { if (cell->type == 0) - mir_sntprintf(buf, SIZEOF(buf), TranslateT("Empty %s cell"), cell->cont == TC_COL?TranslateT("column"):TranslateT("line")); + mir_sntprintf(buf, SIZEOF(buf), TranslateT("Empty %s cell"), cell->cont == TC_COL ? TranslateT("column") : TranslateT("line")); else - mir_sntprintf(buf, SIZEOF(buf), _T("%s"), TranslateTS(types[cell->type])); + _tcsncpy_s(buf, TranslateTS(types[cell->type]), _TRUNCATE); } else { if (cell->type == 0) - mir_sntprintf(buf, SIZEOF(buf), _T("%s"), cell->cont != TC_COL?TranslateT("columns"):TranslateT("lines")); + _tcsncpy_s(buf, (cell->cont != TC_COL ? TranslateT("columns") : TranslateT("lines")), _TRUNCATE); else mir_sntprintf(buf, SIZEOF(buf), TranslateT("%s, contain %s"), TranslateTS(types[cell->type]),cell->cont != TC_COL?TranslateT("columns"):TranslateT("lines")); } diff --git a/plugins/Clist_nicer/src/CLUIFrames/cluiframes.cpp b/plugins/Clist_nicer/src/CLUIFrames/cluiframes.cpp index 3a18f1ba92..2a3d4829ee 100644 --- a/plugins/Clist_nicer/src/CLUIFrames/cluiframes.cpp +++ b/plugins/Clist_nicer/src/CLUIFrames/cluiframes.cpp @@ -918,7 +918,7 @@ INT_PTR CLUIFramesGetFrameOptions(WPARAM wParam, LPARAM lParam) return (INT_PTR)Frames[pos].align; case FO_FLOATING: - return (int)Frames[pos].floating; + return (INT_PTR)Frames[pos].floating; case FO_FLAGS: INT_PTR dwFlags = 0; diff --git a/plugins/Clist_nicer/src/clcutils.cpp b/plugins/Clist_nicer/src/clcutils.cpp index 3b0019626c..c700c5607c 100644 --- a/plugins/Clist_nicer/src/clcutils.cpp +++ b/plugins/Clist_nicer/src/clcutils.cpp @@ -48,38 +48,52 @@ static int MY_pathIsAbsolute(const TCHAR *path) size_t MY_pathToRelative(const TCHAR *pSrc, TCHAR *pOut) { - if ( !pSrc || !mir_tstrlen(pSrc) || mir_tstrlen(pSrc) > MAX_PATH) - return 0; + size_t dwSrcLen, dwProfilePathLen; - if ( !MY_pathIsAbsolute(pSrc)) { - mir_sntprintf(pOut, MAX_PATH, _T("%s"), pSrc); - return mir_tstrlen(pOut); - } + if (!pSrc || !pOut) + return 0; + dwSrcLen = mir_tstrlen(pSrc); + if (!dwSrcLen || dwSrcLen > (MAX_PATH - 1)) + return 0; + if (!MY_pathIsAbsolute(pSrc)) + goto path_not_abs; TCHAR szTmp[MAX_PATH]; - mir_sntprintf(szTmp, SIZEOF(szTmp), _T("%s"), pSrc); + memcpy(szTmp, pSrc, (dwSrcLen * sizeof(TCHAR))); + szTmp[dwSrcLen] = 0; _tcslwr(szTmp); - if ( _tcsstr(szTmp, cfg::dat.tszProfilePath)) { - mir_sntprintf(pOut, MAX_PATH, _T("%s"), pSrc + mir_tstrlen(cfg::dat.tszProfilePath) - 1); - pOut[0]='.'; - return mir_tstrlen(pOut); - } - - mir_sntprintf(pOut, MAX_PATH, _T("%s"), pSrc); - return mir_tstrlen(pOut); + if (_tcsstr(szTmp, cfg::dat.tszProfilePath)) { + dwProfilePathLen = mir_tstrlen(cfg::dat.tszProfilePath); + memcpy(pOut, (pSrc + (dwProfilePathLen - 1)), ((dwSrcLen - (dwProfilePathLen - 1)) * sizeof(TCHAR))); + pOut[0] = '.'; + pOut[dwSrcLen] = 0; + return (dwSrcLen - (dwProfilePathLen - 1)); + } + +path_not_abs: + memcpy(pOut, pSrc, (dwSrcLen * sizeof(TCHAR))); + pOut[dwSrcLen] = 0; + return dwSrcLen; } size_t MY_pathToAbsolute(const TCHAR *pSrc, TCHAR *pOut) { - if ( !pSrc || !mir_tstrlen(pSrc) || mir_tstrlen(pSrc) > MAX_PATH) + size_t dwSrcLen; + + if (!pSrc || !pOut) + return 0; + dwSrcLen = mir_tstrlen(pSrc); + if (!dwSrcLen || dwSrcLen > (MAX_PATH - 1)) return 0; - if (MY_pathIsAbsolute(pSrc)&&pSrc[0]!='.') - mir_sntprintf(pOut, MAX_PATH, _T("%s"), pSrc); - else if (pSrc[0]=='.') - mir_sntprintf(pOut, MAX_PATH, _T("%s\\%s"), cfg::dat.tszProfilePath, pSrc); + if (MY_pathIsAbsolute(pSrc) && pSrc[0] != '.') { + memcpy(pOut, pSrc, (dwSrcLen * sizeof(TCHAR))); + pOut[dwSrcLen] = 0; + return dwSrcLen; + if (pSrc[0] == '.') + return (mir_sntprintf(pOut, MAX_PATH, _T("%s\\%s"), cfg::dat.tszProfilePath, pSrc)); - return mir_tstrlen(pOut); + return 0; } /* diff --git a/plugins/ConnectionNotify/src/ConnectionNotify.cpp b/plugins/ConnectionNotify/src/ConnectionNotify.cpp index 0513ea98a6..1a42fb6794 100644 --- a/plugins/ConnectionNotify/src/ConnectionNotify.cpp +++ b/plugins/ConnectionNotify/src/ConnectionNotify.cpp @@ -639,7 +639,7 @@ INT_PTR TMLoadIcon(WPARAM wParam,LPARAM lParam) case PLI_OFFLINE: id=IDI_ICON2; break; default: return 0; } - return (int)LoadImage(hInst, MAKEINTRESOURCE(id), IMAGE_ICON, GetSystemMetrics(wParam&PLIF_SMALL?SM_CXSMICON:SM_CXICON), GetSystemMetrics(wParam&PLIF_SMALL?SM_CYSMICON:SM_CYICON), 0); + return (INT_PTR)LoadImage(hInst, MAKEINTRESOURCE(id), IMAGE_ICON, GetSystemMetrics(wParam&PLIF_SMALL?SM_CXSMICON:SM_CXICON), GetSystemMetrics(wParam&PLIF_SMALL?SM_CYSMICON:SM_CYICON), 0); } //======================================================= //SetStatus @@ -816,11 +816,11 @@ void showMsg(TCHAR *pName, DWORD pid,TCHAR *intIp,TCHAR *extIp,int intPort,int e } ppd.PluginWindowProc = PopupDlgProc; - ppd.iSeconds=settingInterval1; + ppd.iSeconds = settingInterval1; //Now the "additional" data. - mir_sntprintf(mpd->strIntIp,_countof(mpd->strIntIp),_T("%s"),intIp); - mir_sntprintf(mpd->strExtIp,_countof(mpd->strExtIp),_T("%s"),extIp); - mir_sntprintf(mpd->PName,_countof(mpd->PName),_T("%s"),pName); + _tcsncpy_s(mpd->strIntIp, intIp, _TRUNCATE); + _tcsncpy_s(mpd->strExtIp, extIp, _TRUNCATE); + _tcsncpy_s(mpd->PName, pName, _TRUNCATE); mpd->intIntPort = intPort; mpd->intExtPort = extPort; mpd->Pid = pid; diff --git a/plugins/CrashDumper/src/crshdmp.cpp b/plugins/CrashDumper/src/crshdmp.cpp index ccc560205a..b00edd0437 100644 --- a/plugins/CrashDumper/src/crshdmp.cpp +++ b/plugins/CrashDumper/src/crshdmp.cpp @@ -375,7 +375,7 @@ extern "C" int __declspec(dllexport) Load(void) profpath = Utils_ReplaceVarsT(_T("%miranda_userdata%")); if (catchcrashes && !needrestart) mir_sntprintf(CrashLogFolder, MAX_PATH, TEXT("%s\\CrashLog"), profpath); - mir_sntprintf(VersionInfoFolder, MAX_PATH, TEXT("%s"), profpath); + _tcsncpy_s(VersionInfoFolder, profpath, _TRUNCATE); HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded); diff --git a/plugins/ExternalAPI/m_folders.h b/plugins/ExternalAPI/m_folders.h index e2fc98626a..c54f7c3d18 100644 --- a/plugins/ExternalAPI/m_folders.h +++ b/plugins/ExternalAPI/m_folders.h @@ -189,7 +189,7 @@ __inline static INT_PTR FoldersGetCustomPathW(HANDLE hFolderEntry, wchar_t *path if (res) { wchar_t buffer[MAX_PATH]; PathToAbsoluteW(notFoundW, buffer); - mir_sntprintf(pathW, size, _T("%s"), buffer); + _tcsncpy_s(pathW, size, buffer, _TRUNCATE); } return res; @@ -228,7 +228,7 @@ __inline static INT_PTR FoldersGetCustomPathExW(HANDLE hFolderEntry, wchar_t *pa if (res) { wchar_t buffer[MAX_PATH]; PathToAbsoluteW(notFoundW, buffer); - mir_sntprintf(pathW, size, _T("%s"), buffer); + wcsncpy_s(pathW, size, buffer, _TRUNCATE); } if (pathW[0] != '\0') diff --git a/plugins/FingerprintNG/src/fingerprint.cpp b/plugins/FingerprintNG/src/fingerprint.cpp index 650ca060c2..d095f6e8a5 100644 --- a/plugins/FingerprintNG/src/fingerprint.cpp +++ b/plugins/FingerprintNG/src/fingerprint.cpp @@ -67,7 +67,7 @@ void __fastcall Prepare(KN_FP_MASK* mask, bool bEnable) if (mask->iIconIndex == IDI_NOTFOUND || mask->iIconIndex == IDI_UNKNOWN || mask->iIconIndex == IDI_UNDETECTED) GetModuleFileName(g_hInst, destfile, MAX_PATH); else { - mir_sntprintf(destfile, SIZEOF(destfile), _T("%s"), g_szSkinLib); + _tcsncpy_s(destfile, g_szSkinLib, _TRUNCATE); struct _stat64i32 stFileInfo; if ( _tstat(destfile, &stFileInfo) == -1) @@ -256,7 +256,7 @@ static void MatchMasks(TCHAR* szMirVer, short *base, short *overlay, short *over if (p.iIconIndex != IDI_NOTFOUND && p.iIconIndex != IDI_UNKNOWN && p.iIconIndex != IDI_UNDETECTED) { TCHAR destfile[MAX_PATH]; - mir_sntprintf(destfile, SIZEOF(destfile), _T("%s"), g_szSkinLib); + _tcsncpy_s(destfile, g_szSkinLib, _TRUNCATE); struct _stat64i32 stFileInfo; if ( _tstat(destfile, &stFileInfo) == -1) diff --git a/plugins/Folders/src/utils.cpp b/plugins/Folders/src/utils.cpp index e21a820325..a2ba6668d7 100644 --- a/plugins/Folders/src/utils.cpp +++ b/plugins/Folders/src/utils.cpp @@ -127,7 +127,7 @@ wchar_t *StrReplace(wchar_t *source, const wchar_t *what, const wchar_t *withWha char *StrTrim(char *szText, const char *szTrimChars) { - int i = (int)strlen(szText) - 1; + size_t i = strlen(szText) - 1; while (i >= 0 && strchr(szTrimChars, szText[i])) szText[i--] = '\0'; @@ -143,7 +143,7 @@ char *StrTrim(char *szText, const char *szTrimChars) wchar_t *StrTrim(wchar_t *szText, const wchar_t *szTrimChars) { - int i = (int)wcslen(szText) - 1; + size_t i = wcslen(szText) - 1; while (i >= 0 && wcschr(szTrimChars, szText[i])) szText[i--] = '\0'; diff --git a/plugins/IEView/src/TemplateHTMLBuilder.cpp b/plugins/IEView/src/TemplateHTMLBuilder.cpp index df42325586..c45ac7e528 100644 --- a/plugins/IEView/src/TemplateHTMLBuilder.cpp +++ b/plugins/IEView/src/TemplateHTMLBuilder.cpp @@ -195,7 +195,7 @@ void TemplateHTMLBuilder::buildHeadTemplate(IEView *view, IEVIEWEVENT *event, Pr } mir_snprintf(tempStr, SIZEOF(tempStr), "%snoavatar.png", tempBase); TCHAR szNoAvatarPath[MAX_PATH]; - mir_sntprintf(szNoAvatarPath, SIZEOF(szNoAvatarPath), _T("%s"), _A2T(protoSettings->getSRMMTemplateFilename())); + _tcsncpy_s(szNoAvatarPath, _A2T(protoSettings->getSRMMTemplateFilename()), _TRUNCATE); TCHAR *szNoAvatarPathTmp = _tcsrchr(szNoAvatarPath, '\\'); if (szNoAvatarPathTmp != NULL) *szNoAvatarPathTmp = 0; @@ -370,7 +370,7 @@ void TemplateHTMLBuilder::appendEventTemplate(IEView *view, IEVIEWEVENT *event, } TCHAR szNoAvatarPath[MAX_PATH]; - mir_sntprintf(szNoAvatarPath, SIZEOF(szNoAvatarPath), _T("%s"), _A2T(protoSettings->getSRMMTemplateFilename())); + _tcsncpy_s(szNoAvatarPath, _A2T(protoSettings->getSRMMTemplateFilename()), _TRUNCATE); TCHAR *szNoAvatarPathTmp = _tcsrchr(szNoAvatarPath, '\\'); if (szNoAvatarPathTmp != NULL) *szNoAvatarPathTmp = 0; diff --git a/plugins/IEView/src/ieview_services.cpp b/plugins/IEView/src/ieview_services.cpp index fb0545bebc..8c5f3f0d4b 100644 --- a/plugins/IEView/src/ieview_services.cpp +++ b/plugins/IEView/src/ieview_services.cpp @@ -84,7 +84,7 @@ INT_PTR HandleIEEvent(WPARAM, LPARAM lParam) else if (event->iType == IEE_CLEAR_LOG) view->clear(event); else if (event->iType == IEE_GET_SELECTION) - return (int)view->getSelection(event); + return (INT_PTR)view->getSelection(event); else if (event->iType == IEE_SAVE_DOCUMENT) view->saveDocument(); else if (event->iType == IEE_LOG_MEM_EVENTS) diff --git a/plugins/KeyboardNotify/src/main.cpp b/plugins/KeyboardNotify/src/main.cpp index 1d959950df..cbcdc60627 100644 --- a/plugins/KeyboardNotify/src/main.cpp +++ b/plugins/KeyboardNotify/src/main.cpp @@ -495,12 +495,12 @@ static INT_PTR IsFlashingActiveService(WPARAM, LPARAM) INT_PTR NormalizeSequenceService(WPARAM wParam, LPARAM lParam) { - TCHAR strAux[MAX_PATH+1], *strIn = (TCHAR *)lParam; + TCHAR strAux[MAX_PATH + 1], *strIn = (TCHAR*)lParam; - mir_sntprintf(strAux, MAX_PATH, _T("%s"), strIn); - mir_sntprintf(strIn, MAX_PATH, _T("%s"), normalizeCustomString(strAux)); + _tcsncpy_s(strAux, strIn, _TRUNCATE); + _tcsncpy_s(strIn, MAX_PATH, normalizeCustomString(strAux), _TRUNCATE); - return (int)strIn; + return (INT_PTR)strIn; } @@ -698,10 +698,10 @@ void createEventPrefix(TCHAR *prefixName, size_t maxLen) while (str = _tcschr(profileName, _T('\\'))) *str = _T('/'); if ((len = _tcslen(profileName)) <= maxLen) - _tcscpy(prefixName, profileName); + _tcsncpy_s(prefixName, maxLen, profileName, _TRUNCATE); else { str = profileName + len - maxLen / 2; - mir_sntprintf(prefixName, maxLen / 2, _T("%s"), profileName); + _tcsncpy_s(prefixName, (maxLen / 2), profileName, _TRUNCATE); _tcscat(prefixName, str); } } diff --git a/plugins/NewAwaySysMod/src/Services.cpp b/plugins/NewAwaySysMod/src/Services.cpp index a1f2c42840..dfe711c77f 100644 --- a/plugins/NewAwaySysMod/src/Services.cpp +++ b/plugins/NewAwaySysMod/src/Services.cpp @@ -172,7 +172,7 @@ INT_PTR InvokeStatusWindow(WPARAM wParam, LPARAM) if (g_SetAwayMsgPage.GetWnd()) { // already setting something SetForegroundWindow(g_SetAwayMsgPage.GetWnd()); - return (int)g_SetAwayMsgPage.GetWnd(); + return (INT_PTR)g_SetAwayMsgPage.GetWnd(); } SetAwayMsgData *dat = new SetAwayMsgData; memset(dat, 0, sizeof(SetAwayMsgData)); diff --git a/plugins/New_GPG/src/main.cpp b/plugins/New_GPG/src/main.cpp index ae5785ea2b..9d09305217 100755 --- a/plugins/New_GPG/src/main.cpp +++ b/plugins/New_GPG/src/main.cpp @@ -154,19 +154,18 @@ static INT_PTR CALLBACK DlgProcFirstRun(HWND hwndDlg,UINT msg,WPARAM wParam,LPAR { boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); TCHAR buf[5]; - mir_sntprintf(buf, 5, _T("%s"), expire_date); + _tcsncpy_s(buf, expire_date, _TRUNCATE); int year = _ttoi(buf); if(year < now.date().year()) expired = true; else if(year == now.date().year()) { - mir_sntprintf(buf, 3, _T("%s"), expire_date+5); + _tcsncpy_s(buf, (expire_date + 5), _TRUNCATE); int month = _ttoi(buf); if(month < now.date().month()) expired = true; - else if(month == now.date().month()) - { - mir_sntprintf(buf, 3, _T("%s"), expire_date+8); + else if(month == now.date().month()) { + _tcsncpy_s(buf, (expire_date + 8), _TRUNCATE); unsigned day = _ttoi(buf); if(day <= now.date().day_number()) expired = true; @@ -2125,19 +2124,19 @@ void InitCheck() { boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); TCHAR buf[5]; - mir_sntprintf(buf, 5, _T("%s"), expire_date); + _tcsncpy_s(buf, expire_date, _TRUNCATE); int year = _ttoi(buf); if(year < now.date().year()) expired = true; else if(year == now.date().year()) { - mir_sntprintf(buf, 3, _T("%s"), expire_date+5); + _tcsncpy_s(buf, (expire_date + 5), _TRUNCATE); int month = _ttoi(buf); if(month < now.date().month()) expired = true; else if(month == now.date().month()) { - mir_sntprintf(buf, 3, _T("%s"), expire_date+8); + _tcsncpy_s(buf, (expire_date + 8), _TRUNCATE); unsigned day = _ttoi(buf); if(day <= now.date().day_number()) expired = true; @@ -2192,19 +2191,19 @@ void InitCheck() { boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); TCHAR buf[5]; - mir_sntprintf(buf, 5, _T("%s"), expire_date); + _tcsncpy_s(buf, expire_date, _TRUNCATE); int year = _ttoi(buf); if(year < now.date().year()) expired = true; else if(year == now.date().year()) { - mir_sntprintf(buf, 3, _T("%s"), expire_date+5); + _tcsncpy_s(buf, (expire_date + 5), _TRUNCATE); int month = _ttoi(buf); if(month < now.date().month()) expired = true; else if(month == now.date().month()) { - mir_sntprintf(buf, 3, _T("%s"), expire_date+8); + _tcsncpy_s(buf, (expire_date + 8), _TRUNCATE); unsigned day = _ttoi(buf); if(day <= now.date().day_number()) expired = true; diff --git a/plugins/NotesAndReminders/src/reminders.cpp b/plugins/NotesAndReminders/src/reminders.cpp index 06f9ec8396..e6e2b35639 100644 --- a/plugins/NotesAndReminders/src/reminders.cpp +++ b/plugins/NotesAndReminders/src/reminders.cpp @@ -1017,7 +1017,7 @@ static BOOL ParseTime(LPCSTR s, int *hout, int *mout, BOOL bTimeOffset, BOOL bAl // returns TRUE if combo box list displays time offsets ("23:34 (5 Minutes)" etc.) __inline static BOOL IsRelativeCombo(HWND Dialog, UINT nIDTime) { - return (int)SendDlgItemMessage(Dialog,nIDTime,CB_GETITEMDATA,0,0) >= 0; + return (((int)SendDlgItemMessage(Dialog,nIDTime,CB_GETITEMDATA,0,0)) >= 0); } static void PopulateTimeCombo(HWND Dialog, UINT nIDTime, BOOL bRelative, const SYSTEMTIME *tmUtc) diff --git a/plugins/Scriver/src/infobar.cpp b/plugins/Scriver/src/infobar.cpp index 8917bb1d78..c2e53271c8 100644 --- a/plugins/Scriver/src/infobar.cpp +++ b/plugins/Scriver/src/infobar.cpp @@ -79,9 +79,9 @@ void RefreshInfobar(InfobarWindowData* idat) TCHAR szText[2048]; SETTEXTEX st; if ( szXStatusMsg && *szXStatusMsg ) - mir_sntprintf(szText, 2047, _T("%s (%s)"), TranslateTS(szXStatusName), szXStatusMsg); + mir_sntprintf(szText, SIZEOF(szText), _T("%s (%s)"), TranslateTS(szXStatusName), szXStatusMsg); else - mir_sntprintf(szText, 2047, _T("%s"), TranslateTS(szXStatusName)); + _tcsncpy_s(szText, TranslateTS(szXStatusName), _TRUNCATE); st.flags = ST_DEFAULT; st.codepage = 1200; SendDlgItemMessage(hwnd, IDC_INFOBAR_NAME, EM_SETTEXTEX, (WPARAM) &st, (LPARAM)szContactName); diff --git a/plugins/Scriver/src/msgoptions.cpp b/plugins/Scriver/src/msgoptions.cpp index 0f0a8d85a4..682bf76cbe 100644 --- a/plugins/Scriver/src/msgoptions.cpp +++ b/plugins/Scriver/src/msgoptions.cpp @@ -112,8 +112,8 @@ void RegisterFontServiceFonts() { int i; FontIDT fid = { sizeof(fid) }; - mir_sntprintf(fid.group, SIZEOF(fid.group), _T("%s"), LPGENT("Messaging")); - mir_sntprintf(fid.backgroundGroup, SIZEOF(fid.backgroundGroup), _T("%s"), LPGENT("Messaging")); + _tcsncpy_s(fid.group, LPGENT("Messaging"), _TRUNCATE); + _tcsncpy_s(fid.backgroundGroup, LPGENT("Messaging"), _TRUNCATE); strncpy(fid.dbSettingsGroup, SRMMMOD, SIZEOF(fid.dbSettingsGroup)); fid.flags = FIDF_DEFAULTVALID | FIDF_DEFAULTVALID; for (i = 0; i < SIZEOF(fontOptionsList); i++) { @@ -133,7 +133,7 @@ void RegisterFontServiceFonts() } ColourIDT cid = { sizeof(cid) }; - mir_sntprintf(cid.group, SIZEOF(cid.group), _T("%s"), LPGENT("Messaging")); + _tcsncpy_s(cid.group, LPGENT("Messaging"), _TRUNCATE); strncpy(cid.dbSettingsGroup, SRMMMOD, SIZEOF(fid.dbSettingsGroup)); cid.flags = 0; for (i = 0; i < SIZEOF(colourOptionsList); i++) { diff --git a/plugins/Scriver/src/msgtimedout.cpp b/plugins/Scriver/src/msgtimedout.cpp index 317d8b6ef4..6a7bc06f49 100644 --- a/plugins/Scriver/src/msgtimedout.cpp +++ b/plugins/Scriver/src/msgtimedout.cpp @@ -52,7 +52,7 @@ INT_PTR CALLBACK ErrorDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar if (ewd->szName) mir_sntprintf(szText, SIZEOF(szText), _T("%s - %s"), TranslateT("Send Error"), ewd->szName); else - mir_sntprintf(szText, SIZEOF(szText), _T("%s"), TranslateT("Send Error")); + _tcsncpy_s(szText, TranslateT("Send Error"), _TRUNCATE); SetWindowText(hwndDlg, szText); GetWindowRect(hwndDlg, &rc); diff --git a/plugins/SimpleStatusMsg/src/awaymsg.cpp b/plugins/SimpleStatusMsg/src/awaymsg.cpp index 84a8acda74..3f7c677730 100644 --- a/plugins/SimpleStatusMsg/src/awaymsg.cpp +++ b/plugins/SimpleStatusMsg/src/awaymsg.cpp @@ -266,7 +266,7 @@ static INT_PTR CALLBACK CopyAwayMsgDlgProc(HWND hwndDlg, UINT message, WPARAM wP if (EmptyClipboard()) { TCHAR msg[1024]; TCHAR *tszMsg = StrNormNewline((TCHAR *)ack->lParam); - mir_sntprintf(msg, SIZEOF(msg), _T("%s"), tszMsg); + _tcsncpy_s(msg, tszMsg, _TRUNCATE); mir_free(tszMsg); size_t len = mir_tstrlen(msg); if (len) { diff --git a/plugins/Spamotron/src/popups.cpp b/plugins/Spamotron/src/popups.cpp index 43a5ee5655..3635aa33bc 100644 --- a/plugins/Spamotron/src/popups.cpp +++ b/plugins/Spamotron/src/popups.cpp @@ -184,10 +184,10 @@ int ShowPopupPreview(HWND optDlg, BYTE popupType, TCHAR *line1, TCHAR *line2) if (SendDlgItemMessage(optDlg, IDC_OPT_POPUPS_DEFAULT_TIMEOUT, BM_GETCHECK, 0, 0) || popupType == POPUP_DEFAULT) ppdp.iSeconds = 0; - ppdp.lchContact = NULL; - mir_sntprintf(ppdp.lptzContactName, MAX_CONTACTNAME, _T("%s"), (line1)?line1:_T(PLUGIN_NAME)); + ppdp.lchContact = NULL; + _tcsncpy_s(ppdp.lptzContactName, (line1 ? line1 : _T(PLUGIN_NAME)), _TRUNCATE); if (line2) - mir_sntprintf(ppdp.lptzText, MAX_SECONDLINE, _T("%s"), line2); + _tcsncpy_s(ppdp.lptzText, line2, _TRUNCATE); return PUAddPopupT(&ppdp); } @@ -233,9 +233,9 @@ int ShowPopup(MCONTACT hContact, BYTE popupType, TCHAR *line1, TCHAR *line2) if (_getOptB("PopupDefaultTimeout", defaultPopupDefaultTimeout) || popupType == POPUP_DEFAULT) ppdp.iSeconds = 0; - ppdp.lchContact = hContact; - mir_sntprintf(ppdp.lptzContactName, MAX_CONTACTNAME, _T("%s"), (line1)?line1:_T(PLUGIN_NAME)); + ppdp.lchContact = hContact; + _tcsncpy_s(ppdp.lptzContactName, (line1 ? line1 : _T(PLUGIN_NAME)), _TRUNCATE); if (line2) - mir_sntprintf(ppdp.lptzText, MAX_SECONDLINE, _T("%s"), line2); + _tcsncpy_s(ppdp.lptzText, line2, _TRUNCATE); return PUAddPopupT(&ppdp); } \ No newline at end of file diff --git a/plugins/TabSRMM/src/chat/log.cpp b/plugins/TabSRMM/src/chat/log.cpp index 7129dc6361..cee377f6ca 100644 --- a/plugins/TabSRMM/src/chat/log.cpp +++ b/plugins/TabSRMM/src/chat/log.cpp @@ -629,7 +629,7 @@ static void AddEventToBuffer(char **buffer, int *bufferEnd, int *bufferAlloced, if (streamData->lin->ptszUserInfo && streamData->lin->iType != GC_EVENT_TOPIC) mir_sntprintf(szTemp, SIZEOF(szTemp), _T("%s (%s)"), szTemp2, streamData->lin->ptszUserInfo); else - mir_sntprintf(szTemp, SIZEOF(szTemp), _T("%s"), szTemp2); + _tcsncpy_s(szTemp, szTemp2, _TRUNCATE); pszNick = szTemp; } diff --git a/plugins/TabSRMM/src/chat/main.cpp b/plugins/TabSRMM/src/chat/main.cpp index 9efe0eb1c4..994a7feabe 100644 --- a/plugins/TabSRMM/src/chat/main.cpp +++ b/plugins/TabSRMM/src/chat/main.cpp @@ -47,7 +47,7 @@ static void OnGetLogName(SESSION_INFO *si, LPCTSTR ptszParsedName) if (!PathIsAbsoluteT(ptszParsedName)) mir_sntprintf(si->pszLogFileName, MAX_PATH, _T("%s%s"), M.getChatLogPath(), ptszParsedName); else - mir_sntprintf(si->pszLogFileName, MAX_PATH, _T("%s"), ptszParsedName); + _tcsncpy_s(si->pszLogFileName, ptszParsedName, _TRUNCATE); } static void OnCreateSession(SESSION_INFO *si, MODULEINFO *mi) diff --git a/plugins/TabSRMM/src/chat/options.cpp b/plugins/TabSRMM/src/chat/options.cpp index dc89da275f..d4fb1228dc 100644 --- a/plugins/TabSRMM/src/chat/options.cpp +++ b/plugins/TabSRMM/src/chat/options.cpp @@ -831,7 +831,7 @@ INT_PTR CALLBACK DlgProcOptions2(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM case IDC_MUC_OPENLOGBASEDIR: { TCHAR tszTemp[MAX_PATH + 20]; - mir_sntprintf(tszTemp, MAX_PATH + 20, _T("%s"), g_Settings.pszLogDir); + _tcsncpy_s(tszTemp, g_Settings.pszLogDir, _TRUNCATE); TCHAR *p = tszTemp; while(*p && (*p == '\\' || *p == '.')) @@ -841,10 +841,10 @@ INT_PTR CALLBACK DlgProcOptions2(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM if (TCHAR *p1 = _tcschr(p, '\\')) *p1 = 0; - TCHAR tszInitialDir[_MAX_DRIVE + _MAX_PATH + 10]; - mir_sntprintf(tszInitialDir, MAX_PATH, _T("%s%s"), M.getChatLogPath(), p); + TCHAR tszInitialDir[_MAX_DRIVE + _MAX_PATH + 10]; + mir_sntprintf(tszInitialDir, SIZEOF(tszInitialDir), _T("%s%s"), M.getChatLogPath(), p); if (!PathFileExists(tszInitialDir)) - mir_sntprintf(tszInitialDir, MAX_PATH, _T("%s"), M.getChatLogPath()); + _tcsncpy_s(tszInitialDir, M.getChatLogPath(), _TRUNCATE); TCHAR tszReturnName[MAX_PATH]; tszReturnName[0] = 0; mir_sntprintf(tszTemp, SIZEOF(tszTemp), _T("%s%c*.*%c%c"), TranslateT("All Files"), 0, 0, 0); diff --git a/plugins/TabSRMM/src/contactcache.cpp b/plugins/TabSRMM/src/contactcache.cpp index 3272c5610c..650f3ceb7b 100644 --- a/plugins/TabSRMM/src/contactcache.cpp +++ b/plugins/TabSRMM/src/contactcache.cpp @@ -122,7 +122,7 @@ bool CContactCache::updateNick() TCHAR *tszNick = pcli->pfnGetContactDisplayName(getActiveContact(), 0); if (tszNick) fChanged = (_tcscmp(m_szNick, tszNick) ? true : false); - mir_sntprintf(m_szNick, 80, _T("%s"), tszNick ? tszNick : _T("")); + _tcsncpy_s(m_szNick, (tszNick ? tszNick : _T("")), _TRUNCATE); } return fChanged; } @@ -187,8 +187,8 @@ bool CContactCache::updateUIN() if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)&ci)) { switch (ci.type) { case CNFT_ASCIIZ: - mir_sntprintf(m_szUIN, SIZEOF(m_szUIN), _T("%s"), reinterpret_cast(ci.pszVal)); - mir_free((void*)ci.pszVal); + _tcsncpy_s(m_szUIN, ci.pszVal, _TRUNCATE); + mir_free(ci.pszVal); break; case CNFT_DWORD: mir_sntprintf(m_szUIN, SIZEOF(m_szUIN), _T("%u"), ci.dVal); diff --git a/plugins/TabSRMM/src/container.cpp b/plugins/TabSRMM/src/container.cpp index 7239a16651..45ddd99900 100644 --- a/plugins/TabSRMM/src/container.cpp +++ b/plugins/TabSRMM/src/container.cpp @@ -1464,7 +1464,7 @@ panel_found: if (szThemeName != NULL) { PathToAbsoluteT(szThemeName, pContainer->szAbsThemeFile, M.getDataPath()); - mir_sntprintf(pContainer->szRelThemeFile, MAX_PATH, _T("%s"), szThemeName); + _tcsncpy_s(pContainer->szRelThemeFile, szThemeName, _TRUNCATE); db_free(&dbv); } else pContainer->szAbsThemeFile[0] = pContainer->szRelThemeFile[0] = 0; diff --git a/plugins/TabSRMM/src/containeroptions.cpp b/plugins/TabSRMM/src/containeroptions.cpp index 8c43d1b53e..5cd8f77982 100644 --- a/plugins/TabSRMM/src/containeroptions.cpp +++ b/plugins/TabSRMM/src/containeroptions.cpp @@ -349,7 +349,7 @@ INT_PTR CALLBACK DlgProcContainerOptions(HWND hwndDlg, UINT msg, WPARAM wParam, pContainer->fPrivateThemeChanged = TRUE; if (PathFileExists(szFinalThemeFile)) - mir_sntprintf(pContainer->szRelThemeFile, MAX_PATH, _T("%s"), szFilename); + _tcsncpy_s(pContainer->szRelThemeFile, szFilename, _TRUNCATE); else pContainer->szRelThemeFile[0] = 0; } diff --git a/plugins/TabSRMM/src/controls.cpp b/plugins/TabSRMM/src/controls.cpp index 96250381fa..db00db12b9 100644 --- a/plugins/TabSRMM/src/controls.cpp +++ b/plugins/TabSRMM/src/controls.cpp @@ -981,7 +981,7 @@ LONG_PTR CALLBACK StatusBarSubclassProc(HWND hWnd, UINT msg, WPARAM wParam, LPAR mtnStatus ? TranslateT("enabled") : TranslateT("disabled")); } else if (sid->dwId == MSG_ICON_SESSION) - mir_sntprintf(wBuf, SIZEOF(wBuf), _T("%s"), TranslateT("Session list.\nClick left for a list of open sessions.\nClick right to access favorites and quickly configure message window behavior")); + _tcsncpy_s(wBuf, TranslateT("Session list.\nClick left for a list of open sessions.\nClick right to access favorites and quickly configure message window behavior"), _TRUNCATE); } else if (sid->tszTooltip) _tcsncpy(wBuf, sid->tszTooltip, SIZEOF(wBuf)); diff --git a/plugins/TabSRMM/src/eventpopups.cpp b/plugins/TabSRMM/src/eventpopups.cpp index 3ba4c3e360..d3d6953c78 100644 --- a/plugins/TabSRMM/src/eventpopups.cpp +++ b/plugins/TabSRMM/src/eventpopups.cpp @@ -678,13 +678,13 @@ static int PopupShowT(NEN_OPTIONS *pluginOptions, MCONTACT hContact, HANDLE hEve pud.PluginData = pdata; if (hContact) - mir_sntprintf(pud.lptzContactName, MAX_CONTACTNAME, _T("%s"), pcli->pfnGetContactDisplayName(hContact, 0)); + _tcsncpy_s(pud.lptzContactName, pcli->pfnGetContactDisplayName(hContact, 0), _TRUNCATE); else _tcsncpy_s(pud.lptzContactName, _A2T(dbe.szModule), _TRUNCATE); TCHAR *szPreview = GetPreviewT((WORD)eventType, &dbe); if (szPreview) { - mir_sntprintf(pud.lptzText, MAX_SECONDLINE, _T("%s"), szPreview); + _tcsncpy_s(pud.lptzText, szPreview, _TRUNCATE); mir_free(szPreview); } else _tcsncpy(pud.lptzText, _T(" "), MAX_SECONDLINE); diff --git a/plugins/TabSRMM/src/generic_msghandlers.cpp b/plugins/TabSRMM/src/generic_msghandlers.cpp index 698704de1b..61c2429ce2 100644 --- a/plugins/TabSRMM/src/generic_msghandlers.cpp +++ b/plugins/TabSRMM/src/generic_msghandlers.cpp @@ -1771,9 +1771,9 @@ void TSAPI DM_UpdateTitle(TWindowData *dat, WPARAM wParam, LPARAM lParam) if (PluginConfig.m_StatusOnTabs) mir_sntprintf(newtitle, 127, _T("%s (%s)"), newcontactname, dat->szStatus); else - mir_sntprintf(newtitle, 127, _T("%s"), newcontactname); - } - else mir_sntprintf(newtitle, 127, _T("%s"), _T("Forward")); + _tcsncpy_s(newtitle, newcontactname, _TRUNCATE); + } else + _tcsncpy_s(newtitle, _T("Forward"), _TRUNCATE); item.mask |= TCIF_TEXT; } diff --git a/plugins/TabSRMM/src/infopanel.cpp b/plugins/TabSRMM/src/infopanel.cpp index 9c7e6aed81..0922b715de 100644 --- a/plugins/TabSRMM/src/infopanel.cpp +++ b/plugins/TabSRMM/src/infopanel.cpp @@ -660,8 +660,9 @@ void CInfoPanel::Chat_RenderIPNickname(const HDC hdc, RECT& rcItem) TCHAR *pTmp = _tcschr(si->ptszStatusbarText, ']'); pTmp += 2; TCHAR tszTemp[30]; - if (si->ptszStatusbarText[0] == '[' && pTmp > si->ptszStatusbarText && ((pTmp - si->ptszStatusbarText) < (size_t)30)) { - mir_sntprintf(tszTemp, pTmp - si->ptszStatusbarText, _T("%s"), si->ptszStatusbarText); + if (si->ptszStatusbarText[0] == '[' && pTmp > si->ptszStatusbarText && ((pTmp - si->ptszStatusbarText) < SIZEOF(tszTemp))) { + memcpy(tszTemp, si->ptszStatusbarText, ((pTmp - si->ptszStatusbarText) * sizeof(TCHAR))); + tszTemp[(pTmp - si->ptszStatusbarText)] = 0; CSkin::RenderText(hdc, m_dat->hThemeIP, tszTemp, &rcItem, DT_SINGLELINE | DT_END_ELLIPSIS | DT_NOPREFIX | DT_VCENTER, CSkin::m_glowSize, m_ipConfig.clrs[IPFONTID_STATUS]); } diff --git a/plugins/TabSRMM/src/mim.cpp b/plugins/TabSRMM/src/mim.cpp index 90ee544ba8..8cdd44efa3 100644 --- a/plugins/TabSRMM/src/mim.cpp +++ b/plugins/TabSRMM/src/mim.cpp @@ -101,21 +101,25 @@ void CMimAPI::configureCustomFolders() INT_PTR CMimAPI::foldersPathChanged() { - TCHAR szTemp[MAX_PATH + 2] = {'\0'}; + TCHAR szTemp[MAX_PATH + 2]; if (m_hDataPath) { + szTemp[0] = 0; FoldersGetCustomPathT(m_hDataPath, szTemp, MAX_PATH, const_cast(getDataPath())); - mir_sntprintf(m_szProfilePath, MAX_PATH, _T("%s"), szTemp); + _tcsncpy_s(m_szProfilePath, szTemp, _TRUNCATE); + szTemp[0] = 0; FoldersGetCustomPathT(m_hSkinsPath, szTemp, MAX_PATH, const_cast(getSkinPath())); - mir_sntprintf(m_szSkinsPath, MAX_PATH - 1, _T("%s"), szTemp); + _tcsncpy_s(m_szSkinsPath, (MAX_PATH - 1), szTemp, _TRUNCATE); Utils::ensureTralingBackslash(m_szSkinsPath); + szTemp[0] = 0; FoldersGetCustomPathT(m_hAvatarsPath, szTemp, MAX_PATH, const_cast(getSavedAvatarPath())); - mir_sntprintf(m_szSavedAvatarsPath, MAX_PATH, _T("%s"), szTemp); + _tcsncpy_s(m_szSavedAvatarsPath, szTemp, _TRUNCATE); + szTemp[0] = 0; FoldersGetCustomPathT(m_hChatLogsPath, szTemp, MAX_PATH, const_cast(getChatLogPath())); - mir_sntprintf(m_szChatLogsPath, MAX_PATH, _T("%s"), szTemp); + _tcsncpy_s(m_szChatLogsPath, (MAX_PATH - 1), szTemp, _TRUNCATE); Utils::ensureTralingBackslash(m_szChatLogsPath); } diff --git a/plugins/TabSRMM/src/msgdlgutils.cpp b/plugins/TabSRMM/src/msgdlgutils.cpp index 1be3b96482..fe567a05fc 100644 --- a/plugins/TabSRMM/src/msgdlgutils.cpp +++ b/plugins/TabSRMM/src/msgdlgutils.cpp @@ -1098,7 +1098,7 @@ void TSAPI GetMYUIN(TWindowData *dat) if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)&ci)) { switch (ci.type) { case CNFT_ASCIIZ: - mir_sntprintf(dat->myUin, SIZEOF(dat->myUin), _T("%s"), reinterpret_cast(ci.pszVal)); + _tcsncpy_s(dat->myUin, ci.pszVal, _TRUNCATE); mir_free((void*)ci.pszVal); break; case CNFT_DWORD: @@ -1823,33 +1823,26 @@ void TSAPI GetMyNick(TWindowData *dat) ci.dwFlag = CNF_TCHAR | CNF_NICK; if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)&ci)) { - if (ci.type == CNFT_ASCIIZ) { - if (mir_tstrlen(reinterpret_cast(ci.pszVal)) < 1 || !_tcscmp(reinterpret_cast(ci.pszVal), - TranslateT("'(Unknown Contact)'"))) { - mir_sntprintf(dat->szMyNickname, SIZEOF(dat->szMyNickname), _T("%s"), dat->myUin[0] ? dat->myUin : TranslateT("'(Unknown Contact)'")); - if (ci.pszVal) { - mir_free(ci.pszVal); - ci.pszVal = NULL; - } - } - else { - _tcsncpy(dat->szMyNickname, reinterpret_cast(ci.pszVal), 110); - dat->szMyNickname[109] = 0; - if (ci.pszVal) { - mir_free(ci.pszVal); - ci.pszVal = NULL; - } + switch (ci.type) { + case CNFT_ASCIIZ: + if (mir_tstrlen((TCHAR*)ci.pszVal) == 0 || + !_tcscmp((TCHAR*)ci.pszVal, TranslateT("'(Unknown Contact)'"))) { + _tcsncpy_s(dat->szMyNickname, (dat->myUin[0] ? dat->myUin : TranslateT("'(Unknown Contact)'")), _TRUNCATE); + } else { + _tcsncpy_s(dat->szMyNickname, (TCHAR*)ci.pszVal, _TRUNCATE); } - } - else if (ci.type == CNFT_DWORD) + break; + case CNFT_DWORD: _ltot(ci.dVal, dat->szMyNickname, 10); - else - _tcsncpy(dat->szMyNickname, _T(""), 110); // that really should *never* happen - } - else - _tcsncpy(dat->szMyNickname, _T(""), 110); // same here - if (ci.pszVal) + break; + default: + _tcsncpy_s(dat->szMyNickname, _T(""), _TRUNCATE); // that really should *never* happen + break; + } mir_free(ci.pszVal); + } else { + _tcsncpy_s(dat->szMyNickname, _T(""), _TRUNCATE); // same here + } } HICON TSAPI MY_GetContactIcon(const TWindowData *dat, LPCSTR szSetting) diff --git a/plugins/TabSRMM/src/msgoptions.cpp b/plugins/TabSRMM/src/msgoptions.cpp index dff328cb2c..dba48a37d0 100644 --- a/plugins/TabSRMM/src/msgoptions.cpp +++ b/plugins/TabSRMM/src/msgoptions.cpp @@ -128,7 +128,7 @@ static int TSAPI ScanSkinDir(const TCHAR* tszFolder, HWND hwndCombobox) GetPrivateProfileString(_T("Global"), _T("Name"), _T("None"), szBuf, 500, tszFinalName); if (!_tcscmp(szBuf, _T("None"))) { fd.cFileName[mir_tstrlen(fd.cFileName) - 4] = 0; - mir_sntprintf(szBuf, 255, _T("%s"), fd.cFileName); + _tcsncpy_s(szBuf, fd.cFileName, _TRUNCATE); } PathToRelativeT(tszFinalName, tszRel, M.getSkinPath()); @@ -156,7 +156,7 @@ static int TSAPI RescanSkins(HWND hwndCombobox) DBVARIANT dbv = { 0 }; TCHAR tszSkinRoot[MAX_PATH], tszFindMask[MAX_PATH]; - mir_sntprintf(tszSkinRoot, MAX_PATH, _T("%s"), M.getSkinPath()); + _tcsncpy_s(tszSkinRoot, M.getSkinPath(), _TRUNCATE); SetDlgItemText(GetParent(hwndCombobox), IDC_SKINROOTFOLDER, tszSkinRoot); mir_sntprintf(tszFindMask, MAX_PATH, _T("%s*.*"), tszSkinRoot); diff --git a/plugins/TabSRMM/src/sendlater.cpp b/plugins/TabSRMM/src/sendlater.cpp index 57554d9e8a..fc800e8194 100644 --- a/plugins/TabSRMM/src/sendlater.cpp +++ b/plugins/TabSRMM/src/sendlater.cpp @@ -127,7 +127,7 @@ CSendLaterJob::~CSendLaterJob() POPUPDATAT ppd = {0}; ppd.lchContact = hContact; - mir_sntprintf(ppd.lptzContactName, MAX_CONTACTNAME, _T("%s"), tszName ? tszName : TranslateT("'(Unknown Contact)'")); + _tcsncpy_s(ppd.lptzContactName, (tszName ? tszName : TranslateT("'(Unknown Contact)'")), _TRUNCATE); TCHAR *msgPreview = Utils::GetPreviewWithEllipsis(reinterpret_cast(&pBuf[mir_strlen((char *)pBuf) + 1]), 100); if (fSuccess) { mir_sntprintf(ppd.lptzText, MAX_SECONDLINE, TranslateT("A send later job completed successfully.\nThe original message: %s"), @@ -603,7 +603,7 @@ void CSendLater::qMgrFillList(bool fClear) ::SendMessage(m_hwndList, LVM_SETITEM, 0, LPARAM(&lvItem)); if (p->lastSent == 0) - mir_sntprintf(tszTimestamp, 30, _T("%s"), _T("Never")); + _tcsncpy_s(tszTimestamp, _T("Never"), _TRUNCATE); else { _tcsftime(tszTimestamp, 30, formatTime, _localtime32((__time32_t *)&p->lastSent)); tszTimestamp[29] = 0; diff --git a/plugins/TabSRMM/src/sendqueue.cpp b/plugins/TabSRMM/src/sendqueue.cpp index 310d7717af..6cc6dd33e4 100644 --- a/plugins/TabSRMM/src/sendqueue.cpp +++ b/plugins/TabSRMM/src/sendqueue.cpp @@ -52,7 +52,7 @@ void SendQueue::handleError(TWindowData *dat, const int iEntry) const TCHAR szErrorMsg[500]; dat->iCurrentQueueError = iEntry; - mir_sntprintf(szErrorMsg, 500, _T("%s"), m_jobs[iEntry].szErrorMsg); + _tcsncpy_s(szErrorMsg, m_jobs[iEntry].szErrorMsg, _TRUNCATE); logError(dat, iEntry, szErrorMsg); recallFailed(dat, iEntry); showErrorControls(dat, TRUE); diff --git a/plugins/TabSRMM/src/sidebar.cpp b/plugins/TabSRMM/src/sidebar.cpp index 572292194b..9c42674cf6 100644 --- a/plugins/TabSRMM/src/sidebar.cpp +++ b/plugins/TabSRMM/src/sidebar.cpp @@ -146,7 +146,7 @@ const SIZE& CSideBarButton::measureItem() HFONT oldFont = reinterpret_cast(::SelectObject(dc, ::GetStockObject(DEFAULT_GUI_FONT))); - mir_sntprintf(tszLabel, 255, _T("%s"), m_dat->newtitle); + _tcsncpy_s(tszLabel, m_dat->newtitle, _TRUNCATE); ::GetTextExtentPoint32(dc, tszLabel, (int)mir_tstrlen(tszLabel), &sz); sz.cx += 28; diff --git a/plugins/TabSRMM/src/templates.cpp b/plugins/TabSRMM/src/templates.cpp index fe20910d98..34595e958e 100644 --- a/plugins/TabSRMM/src/templates.cpp +++ b/plugins/TabSRMM/src/templates.cpp @@ -86,7 +86,7 @@ static void LoadTemplatesFrom(TTemplateSet *tSet, MCONTACT hContact, int rtl) if (db_get_ts(hContact, rtl ? RTLTEMPLATES_MODULE : TEMPLATES_MODULE, TemplateNames[i], &dbv)) continue; if (dbv.type == DBVT_ASCIIZ || dbv.type == DBVT_WCHAR) - mir_sntprintf(tSet->szTemplates[i], TEMPLATE_LENGTH, _T("%s"), dbv.ptszVal); + _tcsncpy_s(tSet->szTemplates[i], dbv.ptszVal, _TRUNCATE); db_free(&dbv); } } diff --git a/plugins/TabSRMM/src/themeio.cpp b/plugins/TabSRMM/src/themeio.cpp index de900af22d..35b2c36e2d 100644 --- a/plugins/TabSRMM/src/themeio.cpp +++ b/plugins/TabSRMM/src/themeio.cpp @@ -400,9 +400,9 @@ void TSAPI ReadThemeFromINI(const TCHAR *szIniFilenameT, TContainerData *dat, in db_set_utf(NULL, TEMPLATES_MODULE, TemplateNames[i], szTemplateBuffer); decoded = mir_utf8decodeW(szTemplateBuffer); if (dat == 0) - mir_sntprintf(LTR_Active.szTemplates[i], TEMPLATE_LENGTH, L"%s", decoded); + _tcsncpy_s(LTR_Active.szTemplates[i], decoded, _TRUNCATE); else - mir_sntprintf(dat->ltr_templates->szTemplates[i], TEMPLATE_LENGTH, L"%s", decoded); + _tcsncpy_s(dat->ltr_templates->szTemplates[i], decoded, _TRUNCATE); mir_free(decoded); } @@ -413,9 +413,9 @@ void TSAPI ReadThemeFromINI(const TCHAR *szIniFilenameT, TContainerData *dat, in db_set_utf(NULL, RTLTEMPLATES_MODULE, TemplateNames[i], szTemplateBuffer); decoded = mir_utf8decodeW(szTemplateBuffer); if (dat == 0) - mir_sntprintf(RTL_Active.szTemplates[i], TEMPLATE_LENGTH, L"%s", decoded); + _tcsncpy_s(RTL_Active.szTemplates[i], decoded, _TRUNCATE); else - mir_sntprintf(dat->rtl_templates->szTemplates[i], TEMPLATE_LENGTH, L"%s", decoded); + _tcsncpy_s(dat->rtl_templates->szTemplates[i], decoded, _TRUNCATE); mir_free(decoded); } } @@ -435,7 +435,7 @@ const TCHAR* TSAPI GetThemeFileName(int iMode) OPENFILENAME ofn = {0}; TCHAR szInitialDir[MAX_PATH]; - mir_sntprintf(szInitialDir, MAX_PATH, _T("%s"), M.getSkinPath()); + _tcsncpy_s(szInitialDir, M.getSkinPath(), _TRUNCATE); szFilename[0] = 0; diff --git a/plugins/TabSRMM/src/themes.cpp b/plugins/TabSRMM/src/themes.cpp index 48877e878e..e7cde034cd 100644 --- a/plugins/TabSRMM/src/themes.cpp +++ b/plugins/TabSRMM/src/themes.cpp @@ -2441,7 +2441,7 @@ void CSkin::setAeroEffect(LRESULT effect) void CSkin::extractSkinsAndLogo(bool fForceOverwrite) const { TCHAR tszBasePath[MAX_PATH]; - mir_sntprintf(tszBasePath, MAX_PATH, _T("%s"), M.getDataPath()); + _tcsncpy_s(tszBasePath, M.getDataPath(), _TRUNCATE); if (tszBasePath[mir_tstrlen(tszBasePath) - 1] != '\\') _tcscat(tszBasePath, _T("\\")); diff --git a/plugins/TabSRMM/src/trayicon.cpp b/plugins/TabSRMM/src/trayicon.cpp index 0e792c6617..5a75484758 100644 --- a/plugins/TabSRMM/src/trayicon.cpp +++ b/plugins/TabSRMM/src/trayicon.cpp @@ -141,7 +141,7 @@ void TSAPI CreateSystrayIcon(int create) nim.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; nim.hIcon = PluginConfig.g_iconContainer; nim.uCallbackMessage = DM_TRAYICONNOTIFY; - mir_sntprintf(nim.szTip, 64, _T("%s"), _T("tabSRMM")); + _tcsncpy_s(nim.szTip, _T("tabSRMM"), _TRUNCATE); if (create && !nen_options.bTrayExist) { Shell_NotifyIcon(NIM_ADD, &nim); nen_options.bTrayExist = TRUE; @@ -230,11 +230,9 @@ void TSAPI AddContactToFavorites(MCONTACT hContact, const TCHAR *szNickname, con TCHAR szFinalNick[100]; if (szNickname == NULL) - mir_sntprintf(szFinalNick, SIZEOF(szFinalNick), _T("%s"), pcli->pfnGetContactDisplayName(hContact, 0)); - else { - _tcsncpy(szFinalNick, szNickname, 100); - szFinalNick[99] = 0; - } + _tcsncpy_s(szFinalNick, pcli->pfnGetContactDisplayName(hContact, 0), _TRUNCATE); + else + _tcsncpy_s(szFinalNick, szNickname, _TRUNCATE); if (szProto == NULL) szProto = GetContactProto(hContact); diff --git a/plugins/TabSRMM/src/utils.cpp b/plugins/TabSRMM/src/utils.cpp index fb7541e440..6fe641661b 100644 --- a/plugins/TabSRMM/src/utils.cpp +++ b/plugins/TabSRMM/src/utils.cpp @@ -487,8 +487,8 @@ TCHAR* Utils::GetPreviewWithEllipsis(TCHAR *szText, size_t iMaxLen) *p = 0; uRequired = (p - szText) + 6; } - TCHAR *szResult = reinterpret_cast(mir_alloc(uRequired * sizeof(TCHAR))); - mir_sntprintf(szResult, uRequired, fEllipsis ? _T("%s...") : _T("%s"), szText); + TCHAR *szResult = reinterpret_cast(mir_alloc((uRequired + 1) * sizeof(TCHAR))); + mir_sntprintf(szResult, (uRequired + 1), fEllipsis ? _T("%s...") : _T("%s"), szText); if (p) *p = cSaved; diff --git a/plugins/Utils/mir_options.cpp b/plugins/Utils/mir_options.cpp index 7d7e9fdbc3..ea8844b93b 100644 --- a/plugins/Utils/mir_options.cpp +++ b/plugins/Utils/mir_options.cpp @@ -76,10 +76,9 @@ static void PathToRelative(TCHAR *pOut, size_t outSize, const TCHAR *pSrc) } size_t len = mir_tstrlen(dbPath); - if (_tcsnicmp(pSrc, dbPath, len)) - mir_sntprintf(pOut, outSize, _T("%s"), pSrc + len); - else - mir_tstrncpy(pOut, pSrc, (int)outSize); + if (!_tcsnicmp(pSrc, dbPath, len)) + len = 0; + _tcsncpy_s(pOut, outSize, (pSrc + len), _TRUNCATE); } } diff --git a/plugins/Weather/src/weather_conv.cpp b/plugins/Weather/src/weather_conv.cpp index c375c9d95f..4a0a734392 100644 --- a/plugins/Weather/src/weather_conv.cpp +++ b/plugins/Weather/src/weather_conv.cpp @@ -109,7 +109,7 @@ void GetTemp(TCHAR *tempchar, TCHAR *unit, TCHAR* str) // rounding numToStr((temp-32)/9*5, tstr, SIZEOF(tstr)); if (opt.DoNotAppendUnit) - mir_sntprintf(str, MAX_DATA_LEN, _T("%s"), tstr); + _tcsncpy_s(str, MAX_DATA_LEN, tstr, _TRUNCATE); else mir_sntprintf(str, MAX_DATA_LEN, _T("%s%sC"), tstr, opt.DegreeSign); break; @@ -117,7 +117,7 @@ void GetTemp(TCHAR *tempchar, TCHAR *unit, TCHAR* str) case 2: numToStr(temp, tstr, SIZEOF(tstr)); if (opt.DoNotAppendUnit) - mir_sntprintf(str, MAX_DATA_LEN, _T("%s"), tstr); + _tcsncpy_s(str, MAX_DATA_LEN, tstr, _TRUNCATE); else mir_sntprintf(str, MAX_DATA_LEN, _T("%s%sF"), tstr, opt.DegreeSign); break; @@ -394,8 +394,8 @@ WORD GetIcon(const TCHAR* cond, WIDATA *Data) j++; // using the format _T("# Weather #" mir_sntprintf(LangPackStr, SIZEOF(LangPackStr), _T("# Weather %s %i #"), statusStr[i], j); - mir_sntprintf(LangPackStr1, SIZEOF(LangPackStr1), _T("%s"), TranslateTS(LangPackStr)); - CharLowerBuff(LangPackStr1, (DWORD)_tcslen(LangPackStr1)); + _tcsncpy_s(LangPackStr1, TranslateTS(LangPackStr), _TRUNCATE); + CharLowerBuff(LangPackStr1, _tcslen(LangPackStr1)); if (_tcsstr(cond, LangPackStr1) != NULL) return statusValue[i]; // loop until the translation string exists (ie, the translated string is differ from original) diff --git a/plugins/YAMN/src/browser/mailbrowser.cpp b/plugins/YAMN/src/browser/mailbrowser.cpp index 125365ec54..6b0cd74b25 100644 --- a/plugins/YAMN/src/browser/mailbrowser.cpp +++ b/plugins/YAMN/src/browser/mailbrowser.cpp @@ -1479,14 +1479,14 @@ INT_PTR CALLBACK DlgProcYAMNShowMessage(HWND hDlg,UINT msg,WPARAM wParam,LPARAM WCHAR *title=0; size_t size = (From ? wcslen(From) : 0) + (Subj ? wcslen(Subj) : 0) + 4; title = new WCHAR[size]; - if (From&&Subj) + if (From && Subj) mir_sntprintf(title, size, L"%s (%s)", Subj, From); else if (From) - mir_sntprintf(title, size, L"%s", From); + _tcsncpy_s(title, size, From, _TRUNCATE); else if (Subj) - mir_sntprintf(title, size, L"%s", Subj); + _tcsncpy_s(title, size, Subj, _TRUNCATE); else - mir_sntprintf(title, size, L"none"); + _tcsncpy_s(title, size, L"none", _TRUNCATE); if (Subj) delete[] Subj; if (From) delete[] From; SendMessageW(hDlg,WM_SETTEXT,0,(LPARAM)title); diff --git a/protocols/AimOscar/src/popup.cpp b/protocols/AimOscar/src/popup.cpp index 107908da51..c561994451 100644 --- a/protocols/AimOscar/src/popup.cpp +++ b/protocols/AimOscar/src/popup.cpp @@ -80,7 +80,7 @@ void CAimProto::ShowPopup(const char* msg, int flags, char* url) } TCHAR *msgt = (flags & TCHAR_POPUP) ? mir_tstrdup((TCHAR*)msg) : mir_a2t(msg); - mir_sntprintf(ppd.lptzText, SIZEOF(ppd.lptzText), _T("%s"), TranslateTS(msgt)); + _tcsncpy_s(ppd.lptzText, TranslateTS(msgt), _TRUNCATE); mir_free(msgt); if (!ServiceExists(MS_POPUP_ADDPOPUPT)) diff --git a/protocols/FacebookRM/src/proto.cpp b/protocols/FacebookRM/src/proto.cpp index a5443be932..8d76eb94f7 100644 --- a/protocols/FacebookRM/src/proto.cpp +++ b/protocols/FacebookRM/src/proto.cpp @@ -427,7 +427,7 @@ int FacebookProto::OnEvent(PROTOEVENTTYPE event, WPARAM wParam, LPARAM lParam) INT_PTR FacebookProto::SvcCreateAccMgrUI(WPARAM wParam, LPARAM lParam) { - return (int)CreateDialogParam(g_hInstance,MAKEINTRESOURCE(IDD_FACEBOOKACCOUNT), + return (INT_PTR)CreateDialogParam(g_hInstance,MAKEINTRESOURCE(IDD_FACEBOOKACCOUNT), (HWND)lParam, FBAccountProc, (LPARAM)this); } diff --git a/protocols/Gadu-Gadu/src/image.cpp b/protocols/Gadu-Gadu/src/image.cpp index 213e24b51e..fd7ef6e2ab 100644 --- a/protocols/Gadu-Gadu/src/image.cpp +++ b/protocols/Gadu-Gadu/src/image.cpp @@ -836,7 +836,7 @@ int GGPROTO::img_displayasmsg(MCONTACT hContact, void *img) mir_sntprintf(szPath + tPathLen, MAX_PATH - tPathLen, _T("\\%s"), dat->lpszFileName); if ((pImgext = gg_img_hasextension(szPath)) == NULL) pImgext = szPath + _tcslen(szPath); - mir_sntprintf(imgext, SIZEOF(imgext), _T("%s"), pImgext); + _tcsncpy_s(imgext, pImgext, _TRUNCATE); for (i = 1; ; ++i) { if ((res = gg_img_isexists(szPath, dat)) != -1) break; diff --git a/protocols/IRCG/src/options.cpp b/protocols/IRCG/src/options.cpp index 85097b5146..5fa543c8d1 100644 --- a/protocols/IRCG/src/options.cpp +++ b/protocols/IRCG/src/options.cpp @@ -712,7 +712,7 @@ void CConnectPrefsDlg::OnApply() m_nick.GetText(m_proto->m_nick, SIZEOF(m_proto->m_nick)); removeSpaces(m_proto->m_nick); - mir_sntprintf(m_proto->m_pNick, SIZEOF(m_proto->m_pNick), _T("%s"), m_proto->m_nick); + _tcsncpy_s(m_proto->m_pNick, m_proto->m_nick, _TRUNCATE); m_nick2.GetText(m_proto->m_alternativeNick, SIZEOF(m_proto->m_alternativeNick)); removeSpaces(m_proto->m_alternativeNick); m_userID.GetText(m_proto->m_userID, SIZEOF(m_proto->m_userID)); @@ -1815,7 +1815,7 @@ struct CDlgAccMgrUI : public CProtoDlgBase m_nick.GetText(m_proto->m_nick, SIZEOF(m_proto->m_nick)); removeSpaces(m_proto->m_nick); - mir_sntprintf(m_proto->m_pNick, 30, _T("%s"), m_proto->m_nick); + _tcsncpy_s(m_proto->m_pNick, m_proto->m_nick, _TRUNCATE); m_nick2.GetText(m_proto->m_alternativeNick, SIZEOF(m_proto->m_alternativeNick)); removeSpaces(m_proto->m_alternativeNick); m_userID.GetText(m_proto->m_userID, SIZEOF(m_proto->m_userID)); diff --git a/protocols/JabberG/src/jabber_chat.cpp b/protocols/JabberG/src/jabber_chat.cpp index 4692566bef..529d78dbfb 100644 --- a/protocols/JabberG/src/jabber_chat.cpp +++ b/protocols/JabberG/src/jabber_chat.cpp @@ -1202,8 +1202,9 @@ static void sttNickListHook(CJabberProto *ppro, JABBER_LIST_ITEM *item, GCHOOK* MCONTACT hContact; JABBER_SEARCH_RESULT jsr = { 0 }; jsr.hdr.cbSize = sizeof(JABBER_SEARCH_RESULT); - mir_sntprintf(jsr.jid, SIZEOF(jsr.jid), _T("%s"), him->m_tszRealJid); - if (TCHAR *tmp = _tcschr(jsr.jid, _T('/'))) *tmp = 0; + _tcsncpy_s(jsr.jid, him->m_tszRealJid, _TRUNCATE); + if (TCHAR *tmp = _tcschr(jsr.jid, _T('/'))) + *tmp = 0; JABBER_LIST_ITEM *item = ppro->ListAdd(LIST_VCARD_TEMP, jsr.jid); ppro->ListAddResource(LIST_VCARD_TEMP, jsr.jid, him->m_iStatus, him->m_tszStatusMessage, him->m_iPriority); @@ -1218,8 +1219,9 @@ static void sttNickListHook(CJabberProto *ppro, JABBER_LIST_ITEM *item, GCHOOK* JABBER_SEARCH_RESULT jsr = { 0 }; jsr.hdr.cbSize = sizeof(JABBER_SEARCH_RESULT); jsr.hdr.flags = PSR_TCHAR; - mir_sntprintf(jsr.jid, SIZEOF(jsr.jid), _T("%s"), him->m_tszRealJid); - if (TCHAR *tmp = _tcschr(jsr.jid, _T('/'))) *tmp = 0; + _tcsncpy_s(jsr.jid, him->m_tszRealJid, _TRUNCATE); + if (TCHAR *tmp = _tcschr(jsr.jid, _T('/'))) + *tmp = 0; jsr.hdr.nick = jsr.jid; ADDCONTACTSTRUCT acs = { 0 }; diff --git a/protocols/JabberG/src/jabber_disco.cpp b/protocols/JabberG/src/jabber_disco.cpp index 66b60174bc..4c21802990 100644 --- a/protocols/JabberG/src/jabber_disco.cpp +++ b/protocols/JabberG/src/jabber_disco.cpp @@ -1412,7 +1412,7 @@ void CJabberProto::ServiceDiscoveryShowMenu(CJabberSDNode *pNode, HTREELISTITEM MCONTACT hContact = HContactFromJID(pNode->GetJid()); if (!hContact) { JABBER_SEARCH_RESULT jsr={0}; - mir_sntprintf(jsr.jid, SIZEOF(jsr.jid), _T("%s"), jid); + _tcsncpy_s(jsr.jid, jid, _TRUNCATE); jsr.hdr.cbSize = sizeof(JABBER_SEARCH_RESULT); hContact = (MCONTACT)CallProtoService(m_szModuleName, PS_ADDTOLIST, PALF_TEMPORARY, (LPARAM)&jsr); } diff --git a/protocols/JabberG/src/jabber_rc.cpp b/protocols/JabberG/src/jabber_rc.cpp index 2ce34e50d0..9267f68a48 100644 --- a/protocols/JabberG/src/jabber_rc.cpp +++ b/protocols/JabberG/src/jabber_rc.cpp @@ -584,8 +584,8 @@ int CJabberProto::AdhocForwardHandler(HXML, CJabberIqInfo *pInfo, CJabberAdhocSe if (cbBlob < dbei.cbBlob) { // rest of message contains a sender's resource ptrT szOResource( mir_utf8decodeT((LPSTR)dbei.pBlob + cbBlob+1)); mir_sntprintf(szOFrom, SIZEOF(szOFrom), _T("%s/%s"), tszJid, szOResource); - } - else mir_sntprintf(szOFrom, SIZEOF(szOFrom), _T("%s"), tszJid); + } else + _tcsncpy_s(szOFrom, tszJid, _TRUNCATE); addressesNode << XCHILD(_T("address")) << XATTR(_T("type"), _T("ofrom")) << XATTR(_T("jid"), szOFrom); addressesNode << XCHILD(_T("address")) << XATTR(_T("type"), _T("oto")) << XATTR(_T("jid"), m_ThreadInfo->fullJID); diff --git a/protocols/JabberG/src/jabber_svc.cpp b/protocols/JabberG/src/jabber_svc.cpp index f35fcbda5b..e4176528e4 100644 --- a/protocols/JabberG/src/jabber_svc.cpp +++ b/protocols/JabberG/src/jabber_svc.cpp @@ -536,7 +536,7 @@ INT_PTR __cdecl CJabberProto::JabberSendNudge(WPARAM hContact, LPARAM) if (szResource) mir_sntprintf(tszJid, SIZEOF(tszJid), _T("%s/%s"), jid, szResource); else - mir_sntprintf(tszJid, SIZEOF(tszJid), _T("%s"), jid); + _tcsncpy_s(tszJid, jid, _TRUNCATE); JabberCapsBits jcb = GetResourceCapabilites(tszJid, FALSE); m_ThreadInfo->send( diff --git a/protocols/JabberG/src/jabber_userinfo.cpp b/protocols/JabberG/src/jabber_userinfo.cpp index a6a550ea7f..21a511149b 100644 --- a/protocols/JabberG/src/jabber_userinfo.cpp +++ b/protocols/JabberG/src/jabber_userinfo.cpp @@ -281,7 +281,7 @@ static void sttFillResourceInfo(CJabberProto *ppro, HWND hwndTree, HTREEITEM hti if (g_JabberFeatCapPairs[i].tszDescription) mir_sntprintf(szDescription, SIZEOF(szDescription), _T("%s (%s)"), TranslateTS(g_JabberFeatCapPairs[i].tszDescription), g_JabberFeatCapPairs[i].szFeature); else - mir_sntprintf(szDescription, SIZEOF(szDescription), _T("%s"), g_JabberFeatCapPairs[i].szFeature); + _tcsncpy_s(szDescription, g_JabberFeatCapPairs[i].szFeature, _TRUNCATE); sttFillInfoLine(hwndTree, htiCaps, NULL, NULL, szDescription, sttInfoLineId(resource, INFOLINE_CAPS, i)); } @@ -291,7 +291,7 @@ static void sttFillResourceInfo(CJabberProto *ppro, HWND hwndTree, HTREEITEM hti if (ppro->m_lstJabberFeatCapPairsDynamic[j]->szDescription) mir_sntprintf(szDescription, SIZEOF(szDescription), _T("%s (%s)"), TranslateTS(ppro->m_lstJabberFeatCapPairsDynamic[j]->szDescription), ppro->m_lstJabberFeatCapPairsDynamic[j]->szFeature); else - mir_sntprintf(szDescription, SIZEOF(szDescription), _T("%s"), ppro->m_lstJabberFeatCapPairsDynamic[j]->szFeature); + _tcsncpy_s(szDescription, ppro->m_lstJabberFeatCapPairsDynamic[j]->szFeature, _TRUNCATE); sttFillInfoLine(hwndTree, htiCaps, NULL, NULL, szDescription, sttInfoLineId(resource, INFOLINE_CAPS, i)); } } @@ -322,7 +322,7 @@ static void sttFillAdvStatusInfo(CJabberProto *ppro, HWND hwndTree, HTREEITEM ht if (szAdvStatusText && *szAdvStatusText) mir_sntprintf(szText, 2047, _T("%s (%s)"), TranslateTS(szAdvStatusTitle), szAdvStatusText); else - mir_sntprintf(szText, 2047, _T("%s"), TranslateTS(szAdvStatusTitle)); + _tcsncpy_s(szText, TranslateTS(szAdvStatusTitle), _TRUNCATE); sttFillInfoLine(hwndTree, htiRoot, Skin_GetIcon(szAdvStatusIcon), szTitle, szText, dwInfoLine); } diff --git a/protocols/MRA/src/Mra_functions.cpp b/protocols/MRA/src/Mra_functions.cpp index 1db43cfae1..a0244d2a66 100644 --- a/protocols/MRA/src/Mra_functions.cpp +++ b/protocols/MRA/src/Mra_functions.cpp @@ -872,7 +872,7 @@ void CMraProto::ShowFormattedErrorMessage(LPWSTR lpwszErrText, DWORD dwErrorCode size_t dwErrDescriptionSize; if (dwErrorCode == NO_ERROR) - mir_sntprintf(szErrorText, SIZEOF(szErrorText), _T("%s"), TranslateTS(lpwszErrText)); + _tcsncpy_s(szErrorText, TranslateTS(lpwszErrText), _TRUNCATE); else { dwErrDescriptionSize = (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErrorCode, 0, szErrDescription, (SIZEOF(szErrDescription) - sizeof(WCHAR)), NULL) - 2); szErrDescription[dwErrDescriptionSize] = 0; diff --git a/protocols/Sametime/src/files.cpp b/protocols/Sametime/src/files.cpp index 29f3a0a077..f890a3f19e 100644 --- a/protocols/Sametime/src/files.cpp +++ b/protocols/Sametime/src/files.cpp @@ -35,8 +35,8 @@ void mwFileTransfer_offered(mwFileTransfer* ft) { TCHAR* messageT = mir_utf8decodeT(message); mir_sntprintf(descriptionT, SIZEOF(descriptionT), _T("%s - %s"), filenameT, messageT); mir_free(messageT); - } - else mir_sntprintf(descriptionT, SIZEOF(descriptionT), _T("%s"), filenameT); + } else + _tcsncpy_s(descriptionT, filenameT, _TRUNCATE); PROTORECVFILET pre = {0}; pre.flags = PREF_TCHAR; diff --git a/protocols/Twitter/src/proto.cpp b/protocols/Twitter/src/proto.cpp index b2e333978f..f00c08e7af 100644 --- a/protocols/Twitter/src/proto.cpp +++ b/protocols/Twitter/src/proto.cpp @@ -223,7 +223,7 @@ int TwitterProto::OnEvent(PROTOEVENTTYPE event,WPARAM wParam,LPARAM lParam) INT_PTR TwitterProto::SvcCreateAccMgrUI(WPARAM,LPARAM lParam) { - return (int)CreateDialogParam(g_hInstance,MAKEINTRESOURCE(IDD_TWITTERACCOUNT),(HWND)lParam, first_run_dialog, (LPARAM)this ); + return (INT_PTR)CreateDialogParam(g_hInstance,MAKEINTRESOURCE(IDD_TWITTERACCOUNT),(HWND)lParam, first_run_dialog, (LPARAM)this ); } INT_PTR TwitterProto::GetName(WPARAM wParam,LPARAM lParam) diff --git a/protocols/VKontakte/src/misc.cpp b/protocols/VKontakte/src/misc.cpp index 2bf4fc1aa8..d2201f680f 100644 --- a/protocols/VKontakte/src/misc.cpp +++ b/protocols/VKontakte/src/misc.cpp @@ -538,10 +538,12 @@ void CVkProto::SetMirVer(MCONTACT hContact, int platform) bool tlstrstr(TCHAR* _s1, TCHAR* _s2) { TCHAR s1[1024], s2[1024]; - mir_sntprintf(s1, SIZEOF(s1), _T("%s"), _s1); - mir_sntprintf(s2, SIZEOF(s2), _T("%s"), _s2); + + _tcsncpy_s(s1, _s1, _TRUNCATE); CharLowerBuff(s1, SIZEOF(s1)); + _tcsncpy_s(s2, _s2, _TRUNCATE); CharLowerBuff(s2, SIZEOF(s2)); + return _tcsstr(s1, s2) != NULL; } diff --git a/protocols/Yahoo/src/avatar.cpp b/protocols/Yahoo/src/avatar.cpp index 7bff4a98e8..f698adb092 100644 --- a/protocols/Yahoo/src/avatar.cpp +++ b/protocols/Yahoo/src/avatar.cpp @@ -616,10 +616,10 @@ void CYahooProto::GetAvatarFileName(MCONTACT hContact, TCHAR* pszDest, int cbLen if (hContact != NULL) { int ck_sum = getDword(hContact, "PictCK", 0); tPathLen += mir_sntprintf(pszDest + tPathLen, cbLen - tPathLen, _T("\\%lX"), ck_sum); - } - else tPathLen += mir_sntprintf(pszDest + tPathLen, cbLen - tPathLen, _T("\\%S avatar"), m_szModuleName); + } else + tPathLen += mir_sntprintf(pszDest + tPathLen, cbLen - tPathLen, _T("\\%S avatar"), m_szModuleName); - mir_sntprintf(pszDest + tPathLen, cbLen - tPathLen, _T("%s"), type == 1 ? _T(".swf") : _T(".png")); + _tcsncpy_s((pszDest + tPathLen), (cbLen - tPathLen), (type == 1 ? _T(".swf") : _T(".png")), _TRUNCATE); } INT_PTR __cdecl CYahooProto::GetAvatarInfo(WPARAM wParam,LPARAM lParam) diff --git a/src/core/stdauth/auth.cpp b/src/core/stdauth/auth.cpp index f2cfaa041b..df3ea40221 100644 --- a/src/core/stdauth/auth.cpp +++ b/src/core/stdauth/auth.cpp @@ -75,7 +75,7 @@ static int AuthEventAdded(WPARAM, LPARAM lParam) if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)&ci)) { switch (ci.type) { case CNFT_ASCIIZ: - mir_sntprintf(szUid, SIZEOF(szUid), _T("%s"), ci.pszVal); + _tcsncpy_s(szUid, ci.pszVal, _TRUNCATE); mir_free(ci.pszVal); break; diff --git a/src/core/stdauth/authdialogs.cpp b/src/core/stdauth/authdialogs.cpp index 99000a8663..fbbc377047 100644 --- a/src/core/stdauth/authdialogs.cpp +++ b/src/core/stdauth/authdialogs.cpp @@ -72,10 +72,10 @@ INT_PTR CALLBACK DlgProcAdded(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar if (off) mir_sntprintf(name + off, SIZEOF(name) - off, _T(" (%s)"), nickT); else - mir_sntprintf(name, SIZEOF(name), _T("%s"), nickT); + _tcsncpy_s(name, nickT, _TRUNCATE); } if (!name[0]) - _tcscpy(name, TranslateT("")); + _tcsncpy_s(name, TranslateT(""), _TRUNCATE); TCHAR hdr[256]; if (uin && emailT[0]) @@ -197,10 +197,10 @@ INT_PTR CALLBACK DlgProcAuthReq(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP if (off) mir_sntprintf(name + off, SIZEOF(name) - off, _T(" (%s)"), (TCHAR*)nickT); else - mir_sntprintf(name, SIZEOF(name), _T("%s"), (TCHAR*)nickT); + _tcsncpy_s(name, nickT, _TRUNCATE); } if (!name[0]) - _tcscpy(name, TranslateT("")); + _tcsncpy_s(name, TranslateT(""), _TRUNCATE); TCHAR hdr[256]; if (uin && emailT[0]) diff --git a/src/core/stdchat/src/window.cpp b/src/core/stdchat/src/window.cpp index 2d9b797540..75be4f1bbc 100644 --- a/src/core/stdchat/src/window.cpp +++ b/src/core/stdchat/src/window.cpp @@ -2387,7 +2387,7 @@ LABEL_SHOWWINDOW: MODULEINFO *pInfo = pci->MM_FindModule(si->pszModule); if (pInfo) { TCHAR szFile[MAX_PATH], szName[MAX_PATH], szFolder[MAX_PATH]; - mir_sntprintf(szName, MAX_PATH, _T("%s"), pInfo->ptszModDispName ? pInfo->ptszModDispName : _A2T(si->pszModule)); + _tcsncpy_s(szName, (pInfo->ptszModDispName ? pInfo->ptszModDispName : _A2T(si->pszModule)), _TRUNCATE); ValidateFilename(szName); mir_sntprintf(szFolder, MAX_PATH, _T("%s\\%s"), g_Settings.pszLogDir, szName); diff --git a/src/core/stdfile/filexferdlg.cpp b/src/core/stdfile/filexferdlg.cpp index 962283e9b0..3bf08dc08d 100644 --- a/src/core/stdfile/filexferdlg.cpp +++ b/src/core/stdfile/filexferdlg.cpp @@ -108,8 +108,8 @@ static void __cdecl RunVirusScannerThread(struct virusscanthreadstartinfo *info) info->szFile[_tcslen(info->szFile) - 1] = '\0'; *pszReplace = 0; mir_sntprintf(szCmdLine, SIZEOF(szCmdLine), _T("%s\"%s\"%s"), dbv.ptszVal, info->szFile, pszReplace + 2); - } - else mir_tstrncpy(szCmdLine, dbv.ptszVal, SIZEOF(szCmdLine)); + } else + _tcsncpy_s(szCmdLine, dbv.ptszVal, _TRUNCATE); PROCESS_INFORMATION pi; if (CreateProcess(NULL, szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp index d7e9870415..8bb5a9ce11 100644 --- a/src/core/stdmsg/src/msgdialog.cpp +++ b/src/core/stdmsg/src/msgdialog.cpp @@ -1002,7 +1002,7 @@ INT_PTR CALLBACK DlgProcMessage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)& ci)) { switch (ci.type) { case CNFT_ASCIIZ: - mir_sntprintf(buf, SIZEOF(buf), _T("%s"), ci.pszVal); + _tcsncpy_s(buf, ci.pszVal, _TRUNCATE); mir_free(ci.pszVal); break; @@ -1113,7 +1113,7 @@ INT_PTR CALLBACK DlgProcMessage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)&ci)) { switch (ci.type) { case CNFT_ASCIIZ: - mir_sntprintf(buf, SIZEOF(buf), _T("%s"), (TCHAR*)ci.pszVal); + _tcsncpy_s(buf, ci.pszVal, _TRUNCATE); mir_free(ci.pszVal); break; case CNFT_DWORD: diff --git a/src/modules/chat/log.cpp b/src/modules/chat/log.cpp index 153e01e7cd..d2ebaefbe9 100644 --- a/src/modules/chat/log.cpp +++ b/src/modules/chat/log.cpp @@ -235,7 +235,7 @@ static void AddEventToBuffer(char **buffer, int *bufferEnd, int *bufferAlloced, if (streamData->lin->ptszUserInfo) mir_sntprintf(szTemp, SIZEOF(szTemp), _T("%s (%s)"), szTemp2, streamData->lin->ptszUserInfo); else - mir_sntprintf(szTemp, SIZEOF(szTemp), _T("%s"), szTemp2); + _tcsncpy_s(szTemp, szTemp2, _TRUNCATE); pszNick = szTemp; } diff --git a/src/modules/chat/tools.cpp b/src/modules/chat/tools.cpp index aabd4535fb..ee64919f10 100644 --- a/src/modules/chat/tools.cpp +++ b/src/modules/chat/tools.cpp @@ -489,7 +489,7 @@ BOOL LogToFile(SESSION_INFO *si, GCEVENT *gce) if (gce->ptszUserInfo) mir_sntprintf(szTemp, SIZEOF(szTemp), _T("%s (%s)"), szTemp2, gce->ptszUserInfo); else - mir_sntprintf(szTemp, SIZEOF(szTemp), _T("%s"), szTemp2); + _tcsncpy_s(szTemp, szTemp2, _TRUNCATE); pszNick = szTemp; } @@ -546,7 +546,7 @@ BOOL LogToFile(SESSION_INFO *si, GCEVENT *gce) break; case GC_EVENT_INFORMATION: p = '!'; - mir_sntprintf(szBuffer, SIZEOF(szBuffer), _T("%s"), ci.RemoveFormatting(gce->ptszText)); + _tcsncpy_s(szBuffer, ci.RemoveFormatting(gce->ptszText), _TRUNCATE); break; case GC_EVENT_ADDSTATUS: p = '+'; diff --git a/src/modules/clist/clistmod.cpp b/src/modules/clist/clistmod.cpp index fc6c717519..df89fd1a23 100644 --- a/src/modules/clist/clistmod.cpp +++ b/src/modules/clist/clistmod.cpp @@ -119,7 +119,7 @@ static INT_PTR GetStatusModeDescription(WPARAM wParam, LPARAM lParam) if (!(lParam & GSMDF_TCHAR)) { static char szMode[64]; char *buf2 = mir_u2a(buf1); - mir_snprintf(szMode, SIZEOF(szMode), "%s", buf2); + strncpy_s(szMode, buf2, _TRUNCATE); mir_free(buf2); return (INT_PTR)szMode; } diff --git a/src/modules/fonts/FontOptions.cpp b/src/modules/fonts/FontOptions.cpp index 97598e7674..3091965994 100644 --- a/src/modules/fonts/FontOptions.cpp +++ b/src/modules/fonts/FontOptions.cpp @@ -522,7 +522,7 @@ static void sttSaveFontData(HWND hwndDlg, FontInternal &F) if (F.flags & FIDF_APPENDNAME) mir_snprintf(str, SIZEOF(str), "%sName", F.prefix); else - mir_snprintf(str, SIZEOF(str), "%s", F.prefix); + strncpy_s(str, F.prefix, _TRUNCATE); if (db_set_ts(NULL, F.dbSettingsGroup, str, F.value.szFace)) { char buff[1024]; @@ -1185,7 +1185,7 @@ static INT_PTR CALLBACK DlgProcLogOptions(HWND hwndDlg, UINT msg, WPARAM wParam, for (i=0; i < colour_id_list_w2.getCount(); i++) { ColourInternal& C = colour_id_list_w2[i]; - mir_snprintf(str, SIZEOF(str), "%s", C.setting); + strncpy_s(str, C.setting, _TRUNCATE); db_set_dw(NULL, C.dbSettingsGroup, str, C.value); } diff --git a/src/modules/fonts/services.cpp b/src/modules/fonts/services.cpp index 1c7b0783dd..63ab76242c 100644 --- a/src/modules/fonts/services.cpp +++ b/src/modules/fonts/services.cpp @@ -142,8 +142,10 @@ int GetFontSettingFromDB(char *settings_group, char *prefix, LOGFONT* lf, COLORR GetDefaultFontSetting(lf, colour); - if (flags & FIDF_APPENDNAME) mir_snprintf(idstr, SIZEOF(idstr), "%sName", prefix); - else mir_snprintf(idstr, SIZEOF(idstr), "%s", prefix); + if (flags & FIDF_APPENDNAME) + mir_snprintf(idstr, SIZEOF(idstr), "%sName", prefix); + else + strncpy_s(idstr, prefix, _TRUNCATE); if (!db_get_ts(NULL, settings_group, idstr, &dbv)) { _tcscpy(lf->lfFaceName, dbv.ptszVal); diff --git a/src/modules/netlib/netlibautoproxy.cpp b/src/modules/netlib/netlibautoproxy.cpp index 5f3c1280de..356c25fc8c 100644 --- a/src/modules/netlib/netlibautoproxy.cpp +++ b/src/modules/netlib/netlibautoproxy.cpp @@ -176,7 +176,7 @@ bool NetlibGetIeProxyConn(NetlibConnection *nlc, bool forceHttps) mir_snprintf(szUrl, SIZEOF(szUrl), "http://%s", nlc->nloc.szHost); else { - mir_snprintf(szUrl, SIZEOF(szUrl), "%s", nlc->nloc.szHost); + strncpy_s(szUrl, nlc->nloc.szHost, _TRUNCATE); noHttp = true; } diff --git a/src/modules/skin/sounds.cpp b/src/modules/skin/sounds.cpp index 64a257620e..67a92df35a 100644 --- a/src/modules/skin/sounds.cpp +++ b/src/modules/skin/sounds.cpp @@ -298,7 +298,7 @@ INT_PTR CALLBACK DlgProcSoundOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM db_free(&dbv); } } } - mir_sntprintf(strFull, SIZEOF(strFull), _T("%s"), snd.ptszTempFile ? snd.ptszTempFile : _T("")); + _tcsncpy_s(strFull, (snd.ptszTempFile ? snd.ptszTempFile : _T("")), _TRUNCATE); PathToAbsoluteT(strFull, strdir); OPENFILENAME ofn; diff --git a/src/modules/utils/bmpfilter.cpp b/src/modules/utils/bmpfilter.cpp index 9e7c28caba..16b3963ab8 100644 --- a/src/modules/utils/bmpfilter.cpp +++ b/src/modules/utils/bmpfilter.cpp @@ -39,7 +39,7 @@ static INT_PTR sttBitmapLoader(const TCHAR* ptszFileName) TCHAR szFilename[MAX_PATH]; if (!PathToAbsoluteT(ptszFileName, szFilename)) - mir_sntprintf(szFilename, SIZEOF(szFilename), _T("%s"), ptszFileName); + _tcsncpy_s(szFilename, ptszFileName, _TRUNCATE); size_t filenameLen = mir_tstrlen(szFilename); if (filenameLen > 4) { diff --git a/src/modules/xml/xmlParser.cpp b/src/modules/xml/xmlParser.cpp index 04c82c59d3..21cf0a0548 100644 --- a/src/modules/xml/xmlParser.cpp +++ b/src/modules/xml/xmlParser.cpp @@ -202,7 +202,7 @@ wchar_t *myMultiByteToWideChar(const char *s, XMLNode::XMLCharEncoding ce) return d; } static inline FILE *xfopen(XMLCSTR filename, XMLCSTR mode) { return _wfopen(filename, mode); } -static inline int xstrlen(XMLCSTR c) { return (int)wcslen(c); } +static inline size_t xstrlen(XMLCSTR c) { return wcslen(c); } static inline int xstrnicmp(XMLCSTR c1, XMLCSTR c2, int l) { return _wcsnicmp(c1, c2, l);} static inline int xstrncmp(XMLCSTR c1, XMLCSTR c2, int l) { return wcsncmp(c1, c2, l);} static inline int xstricmp(XMLCSTR c1, XMLCSTR c2) { return _wcsicmp(c1, c2); } @@ -236,7 +236,7 @@ char *myWideCharToMultiByte(const wchar_t *s) return d; } static inline FILE *xfopen(XMLCSTR filename, XMLCSTR mode) { return fopen(filename, mode); } -static inline int xstrlen(XMLCSTR c) { return (int)strlen(c); } +static inline size_t xstrlen(XMLCSTR c) { return strlen(c); } #ifdef __BORLANDC__ static inline int xstrnicmp(XMLCSTR c1, XMLCSTR c2, int l) { return strnicmp(c1, c2, l);} static inline int xstricmp(XMLCSTR c1, XMLCSTR c2) { return stricmp(c1, c2); } -- cgit v1.2.3