@@ -3688,12 +3688,16 @@ static void ScanDirectoryFiles(const char *basePath, FilePathList *files, const
3688
3688
(strcmp (dp -> d_name , ".." ) != 0 ))
3689
3689
{
3690
3690
#if defined(_WIN32 )
3691
- sprintf (path , "%s\\%s" , basePath , dp -> d_name );
3691
+ int pathLength = snprintf (path , MAX_FILEPATH_LENGTH - 1 , "%s\\%s" , basePath , dp -> d_name );
3692
3692
#else
3693
- sprintf (path , "%s/%s" , basePath , dp -> d_name );
3693
+ int pathLength = snprintf (path , MAX_FILEPATH_LENGTH - 1 , "%s/%s" , basePath , dp -> d_name );
3694
3694
#endif
3695
3695
3696
- if (filter != NULL )
3696
+ if ((pathLength < 0 ) || (pathLength >= MAX_FILEPATH_LENGTH ))
3697
+ {
3698
+ TRACELOG (LOG_WARNING , "FILEIO: Path longer than %d characters (%s...)" , MAX_FILEPATH_LENGTH , basePath );
3699
+ }
3700
+ else if (filter != NULL )
3697
3701
{
3698
3702
if (IsPathFile (path ))
3699
3703
{
@@ -3742,12 +3746,16 @@ static void ScanDirectoryFilesRecursively(const char *basePath, FilePathList *fi
3742
3746
{
3743
3747
// Construct new path from our base path
3744
3748
#if defined(_WIN32 )
3745
- sprintf (path , "%s\\%s" , basePath , dp -> d_name );
3749
+ int pathLength = snprintf (path , MAX_FILEPATH_LENGTH - 1 , "%s\\%s" , basePath , dp -> d_name );
3746
3750
#else
3747
- sprintf (path , "%s/%s" , basePath , dp -> d_name );
3751
+ int pathLength = snprintf (path , MAX_FILEPATH_LENGTH - 1 , "%s/%s" , basePath , dp -> d_name );
3748
3752
#endif
3749
3753
3750
- if (IsPathFile (path ))
3754
+ if ((pathLength < 0 ) || (pathLength >= MAX_FILEPATH_LENGTH ))
3755
+ {
3756
+ TRACELOG (LOG_WARNING , "FILEIO: Path longer than %d characters (%s...)" , MAX_FILEPATH_LENGTH , basePath );
3757
+ }
3758
+ else if (IsPathFile (path ))
3751
3759
{
3752
3760
if (filter != NULL )
3753
3761
{
0 commit comments