Skip to content

Commit 5e6abc8

Browse files
authored
Merge pull request #53 from unknownv2/coreload-v2
Use wcsnlen instead of wclen to validate user DLL paths and names
2 parents c00c08f + 86d6692 commit 5e6abc8

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

src/coreload/common/pal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ namespace coreload
8181
pal::string_t to_lower(const pal::string_t& in);
8282

8383
inline size_t strlen(const char_t* str) { return ::wcslen(str); }
84+
inline size_t strnlen(const char_t* str, size_t max_size) { return ::wcsnlen(str, max_size); }
8485
inline errno_t file_open(const pal::string_t& path, const char_t* mode, FILE* stream) { return ::_wfopen_s(&stream, path.c_str(), mode); }
8586
inline void file_vprintf(FILE* f, const char_t* format, va_list vl) { ::vfwprintf(f, format, vl); ::fputwc(_X('\n'), f); }
8687
inline void err_fputs(const char_t* message) { ::fputws(message, stderr); ::fputwc(_X('\n'), stderr); }

src/coreload/dll/coreload.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ int ValidateArgument(
66
{
77
if (argument != nullptr)
88
{
9-
const size_t string_length = pal::strlen(argument);
9+
const size_t string_length = pal::strnlen(argument, max_size);
1010
if (string_length == 0 || string_length >= max_size)
1111
{
1212
return StatusCode::InvalidArgFailure;

0 commit comments

Comments
 (0)