Commit 586808fd authored by Warren Baird's avatar Warren Baird Committed by Alexandre Julliard

- Avoid possible seg fault when calling TRACE with NULL string pointers.

- Fix bad side-effect of makepath on input parameters.
parent 001fa262
......@@ -677,37 +677,40 @@ VOID _makepath(char * path, const char * drive,
const char * extension )
{
char ch;
TRACE("got %s %s %s %s\n", drive, directory,
filename, extension);
char tmpPath[MAX_PATH];
TRACE("got %s %s %s %s\n", debugstr_a(drive), debugstr_a(directory),
debugstr_a(filename), debugstr_a(extension) );
if ( !path )
return;
path[0] = 0;
tmpPath[0] = '\0';
if (drive && drive[0])
{
path[0] = drive[0];
path[1] = ':';
path[2] = 0;
tmpPath[0] = drive[0];
tmpPath[1] = ':';
tmpPath[2] = 0;
}
if (directory && directory[0])
{
strcat(path, directory);
ch = path[strlen(path)-1];
strcat(tmpPath, directory);
ch = tmpPath[strlen(tmpPath)-1];
if (ch != '/' && ch != '\\')
strcat(path,"\\");
strcat(tmpPath,"\\");
}
if (filename && filename[0])
{
strcat(path, filename);
strcat(tmpPath, filename);
if (extension && extension[0])
{
if ( extension[0] != '.' )
strcat(path,".");
strcat(path,extension);
strcat(tmpPath,".");
strcat(tmpPath,extension);
}
}
strcpy( path, tmpPath );
TRACE("returning %s\n",path);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment