[vlc-commits] [Git][videolan/vlc][master] breakpad: remove MAX_PATH limits
Steve Lhomme (@robUx4)
gitlab at videolan.org
Thu Nov 28 09:30:44 UTC 2024
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
05e7dae2 by Steve Lhomme at 2024-11-28T08:57:11+00:00
breakpad: remove MAX_PATH limits
It's unlikely the user path is that large, but just in case we are ready.
This fixes an issue where the result of _snwprintf() is not checked.
The wstringstream will only fail if there's no memory. At this point
further calls using std::map and breakpad will also fail.
- - - - -
1 changed file:
- bin/breakpad.cpp
Changes:
=====================================
bin/breakpad.cpp
=====================================
@@ -30,6 +30,7 @@
#include <memory>
#include <map>
#include <string>
+#include <sstream>
using google_breakpad::ExceptionHandler;
@@ -47,10 +48,10 @@ extern "C"
void CheckCrashDump( const wchar_t* path )
{
- wchar_t pattern[MAX_PATH];
+ std::wstringstream pattern;
WIN32_FIND_DATAW data;
- _snwprintf( pattern, MAX_PATH, L"%s/*.dmp", path );
- HANDLE h = FindFirstFileW( pattern, &data );
+ pattern << path << L"/*.dmp";
+ HANDLE h = FindFirstFileW( pattern.str().c_str(), &data );
if (h == INVALID_HANDLE_VALUE)
return;
int answer = MessageBoxW( NULL, L"Ooops: VLC media player just crashed.\n" \
@@ -61,17 +62,17 @@ void CheckCrashDump( const wchar_t* path )
params[L"ver"] = WIDEN(PACKAGE_VERSION);
do
{
- wchar_t fullPath[MAX_PATH];
- _snwprintf( fullPath, MAX_PATH, L"%s/%s", path, data.cFileName );
+ std::wstringstream fullPath;
+ fullPath << path << L'/' << data.cFileName;
if( answer == IDYES )
{
std::map<std::wstring, std::wstring> files;
- files[L"upload_file_minidump"] = fullPath;
+ files[L"upload_file_minidump"] = fullPath.str();
google_breakpad::HTTPUpload::SendRequest(
WIDEN( BREAKPAD_URL "/reports" ), params, files,
NULL, NULL, NULL );
}
- DeleteFileW( fullPath );
+ DeleteFileW( fullPath.str().c_str() );
} while ( FindNextFileW( h, &data ) );
FindClose(h);
}
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/05e7dae2fcd2b4b6483fc333b2f5257e84407e34
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/05e7dae2fcd2b4b6483fc333b2f5257e84407e34
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list