8000 Use secure CRT functions for string copying. · fancycode/MemoryModule@2ecf5b7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2ecf5b7

Browse files
committed
Use secure CRT functions for string copying.
1 parent 5c6b699 commit 2ecf5b7

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

MemoryModule.c

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -851,19 +851,20 @@ static PIMAGE_RESOURCE_DIRECTORY_ENTRY _MemorySearchResourceEntry(
851851
// using a pre-allocated array.
852852
wchar_t _searchKeySpace[MAX_LOCAL_KEY_LENGTH+1];
853853
LPWSTR _searchKey;
854+
size_t _searchKeySize;
854855
if (searchKeyLen > MAX_LOCAL_KEY_LENGTH) {
855-
size_t _searchKeySize = (searchKeyLen + 1) * sizeof(wchar_t);
856+
_searchKeySize = (searchKeyLen + 1) * sizeof(wchar_t);
856857
_searchKey = (LPWSTR) malloc(_searchKeySize);
857858
if (_searchKey == NULL) {
858859
SetLastError(ERROR_OUTOFMEMORY);
859860
return NULL;
860861
}
861862
} else {
862863
_searchKey = &_searchKeySpace[0];
864+
_searchKeySize = sizeof(_searchKeySpace);
863865
}
864866

865-
mbstowcs(_searchKey, key, searchKeyLen);
866-
_searchKey[searchKeyLen] = 0;
867+
mbstowcs_s(NULL, _searchKey, _searchKeySize, key, searchKeyLen);
867868
searchKey = _searchKey;
868869
#endif
869870
start = 0;
@@ -990,7 +991,7 @@ MemoryLoadStringEx(HMEMORYMODULE module, UINT id, LPTSTR buffer, int maxsize, WO
990991
{
991992
HMEMORYRSRC resource;
992993
PIMAGE_RESOURCE_DIR_STRING_U data;
993-
DWORD size;
994+
int size;
994995
if (maxsize == 0) {
995996
return 0;
996997
}
@@ -1013,15 +1014,13 @@ MemoryLoadStringEx(HMEMORYMODULE module, UINT id, LPTSTR buffer, int maxsize, WO
10131014
}
10141015

10151016
size = data->Length;
1016-
if (size >= (DWORD) maxsize) {
1017-
size = maxsize;
1018-
} else {
1019-
buffer[size] = 0;
1017+
if (size >= maxsize) {
1018+
size = maxsize - 1;
10201019
}
10211020
#if defined(UNICODE)
1022-
wcsncpy(buffer, data->NameString, size);
1021+
wcsncpy_s(buffer, maxsize, data->NameString, size);
10231022
#else
1024-
wcstombs(buffer, data->NameString, size);
1023+
wcstombs_s(NULL, buffer, maxsize, data->NameString, size);
10251024
#endif
10261025
return size;
10271026
}

0 commit comments

Comments
 (0)
0