avs: make max path check stricter (#305)

## Link to GitHub Issue, if one exists
n/a

## Description of change
The check to warn the user about potential MAX_PATH violation should be
stricter. Saw a user with 150 characters run into a crash during boot
for SDVX3.

## Testing
Tested paths under 130 / over 130, in both 32/64 bits.
This commit is contained in:
bicarus-dev
2025-04-24 10:18:09 -07:00
committed by GitHub
parent 41d0dce6e9
commit 44e1edb50c
+11 -6
View File
@@ -76,18 +76,23 @@ namespace avs {
const auto dll_path_s = dll_path.string(); const auto dll_path_s = dll_path.string();
log_info("avs-game", "DLL path: {}", dll_path_s.c_str()); log_info("avs-game", "DLL path: {}", dll_path_s.c_str());
if (MAX_PATH <= (dll_path_s.length() + 64)) { // MAX_PATH is 260
if (130 <= dll_path_s.length()) {
log_warning( log_warning(
"avs-game", "avs-game",
"PATH TOO LONG WARNING\n\n\n" "PATH TOO LONG WARNING\n\n\n"
"-------------------------------------------------------------------\n" "-------------------------------------------------------------------\n"
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
"WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING\n"
" PATH TOO LONG \n"
"WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING\n" "WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING\n"
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
"'{}' has a length of {}\n" "The path '{}'\n"
"Most of these games will behave unexpectedly when the path is too long,\n" " has a length of {}\n"
"often resulting in random crashes. Move the game contents to a directory\n" "Most of these games may behave unexpectedly when the path is too\n"
"with shorter path.\n" "long, often resulting in random crashes. Move the game contents to\n"
"-------------------------------------------------------------------\n\n\n", "a directory with shorter path.\n"
"-------------------------------------------------------------------\n\n",
dll_path_s, dll_path_s.length()); dll_path_s, dll_path_s.length());
} }
if (!fileutils::file_exists(dll_path)) { if (!fileutils::file_exists(dll_path)) {