You guys should consider replacing that stuff with strsafe functions while you're at it ;)
On 2014-04-06 18:45, khorni...@svn.reactos.org wrote: > Author: khornicek > Date: Sun Apr 6 16:45:21 2014 > New Revision: 62665 > > URL: http://svn.reactos.org/svn/reactos?rev=62665&view=rev > Log: > [MAIN] > - fix a copypasta > - fix a possible buffer overrun (x5) > - fix a negative array index access > > Modified: > trunk/reactos/dll/cpl/main/mouse.c > > Modified: trunk/reactos/dll/cpl/main/mouse.c > URL: > http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/mouse.c?rev=62665&r1=62664&r2=62665&view=diff > ============================================================================== > --- trunk/reactos/dll/cpl/main/mouse.c [iso-8859-1] (original) > +++ trunk/reactos/dll/cpl/main/mouse.c [iso-8859-1] Sun Apr 6 > 16:45:21 2014 > @@ -499,7 +499,7 @@ > /* Remove quotation marks */ > if (szTempData[0] == _T('"')) > { > - lpStart = szValueData + 1; > + lpStart = szTempData + 1; > szTempData[_tcslen(szTempData) - 1] = 0; > } > else > @@ -1022,9 +1022,9 @@ > static VOID > LoadInitialCursorScheme(HWND hwndDlg) > { > - TCHAR szSchemeName[256]; > - TCHAR szSystemScheme[256]; > - TCHAR szCursorPath[256]; > + TCHAR szSchemeName[MAX_PATH]; > + TCHAR szSystemScheme[MAX_PATH]; > + TCHAR szCursorPath[MAX_PATH]; > HKEY hCursorKey; > LONG lError; > DWORD dwDataSize; > @@ -1057,7 +1057,7 @@ > > if (dwSchemeSource != 0) > { > - dwDataSize = 256 * sizeof(TCHAR); > + dwDataSize = MAX_PATH * sizeof(TCHAR); > lError = RegQueryValueEx(hCursorKey, > NULL, > NULL, > @@ -1101,8 +1101,8 @@ > else if (dwSchemeSource == 2) > { > LoadString(hApplet, IDS_SYSTEM_SCHEME, szSystemScheme, MAX_PATH); > - _tcscat(szSchemeName, _T(" ")); > - _tcscat(szSchemeName, szSystemScheme); > + _tcsncat(szSchemeName, _T(" "), MAX_PATH - _tcslen(szSchemeName)); > + _tcsncat(szSchemeName, szSystemScheme, MAX_PATH - > _tcslen(szSchemeName)); > } > > /* Search and select the curent scheme name from the scheme list */ > @@ -1276,6 +1276,10 @@ > { > case LBN_SELCHANGE: > nSel = SendMessage((HWND)lParam, LB_GETCURSEL, > 0, 0); > + > + if(nSel == LB_ERR) > + break; > + > SendDlgItemMessage(hwndDlg, > IDC_IMAGE_CURRENT_CURSOR, STM_SETIMAGE, IMAGE_CURSOR, > > (LPARAM)g_CursorData[nSel].hCursor); > > EnableWindow(GetDlgItem(hwndDlg,IDC_BUTTON_USE_DEFAULT_CURSOR), > > _______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev