[Bf-committers] Safe string copies and concatenations and path lengths (Related to tracker ID 2096)

Jacques Beaurain jbeaurain at istop.com
Tue Jan 11 13:32:50 CET 2005


Hi,

Here is my notes from the tracker. Because it does not only concern the 
crash, I am interested in your thoughts on the path issue.

I don't think this is windows related only, it may not crash on other 
platforms but it happens because of buffer overruns due to unsafe 
strcpys in BLI_split_dirfile.

The pathcrash.patch here fixes the problem (I also introduced a safe 
BLI_strncat function at this stage):

http://www.freeside.ca/patches/

I cannot for some reason attach any files to tracker ID's unless I 
created them myself.

One question about path lengths; This patch will not crash blender but 
the non-existing filename will be truncated. The FILE_MAXDIR and 
FILE_MAXDIR are defined as 160 and 80 resp.
They are also defined in three places.

IMO there should really be only one define FILE_MAXPATH that is platform 
dependent. For windows (and possible other platforms) this will be 
defined as:

#define FILE_MAXPATH MAX_PATH // == 260 on Windows

which should replace all occurrences of:

FILE_MAXPATH
FILE_MAXDIR
and FILE_MAXPATH+FILE_MAXDIR

This will result in less of these kind of problems and if combined with 
safe string copies will result in a stabler blender.

Cheers,

Jacques


More information about the Bf-committers mailing list