issue 10501

make_buildinfo regression with unquoted path
Make_buildinfo.exe should be called with a quoted path, and should quote the full paths to its temp files, to support spaces in filenames.
This commit is contained in:
Kristján Valur Jónsson 2010-11-22 11:37:06 +00:00
parent b87ef8f872
commit 60fafa276c
2 changed files with 25 additions and 23 deletions

View File

@ -52,9 +52,9 @@ int make_buildinfo2(const char *tmppath)
if (_stat(command+1, &st) < 0)
/* subwcrev.exe not part of the release */
return 0;
strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c ");
strcat_s(command, CMD_SIZE, tmppath);
strcat_s(command, CMD_SIZE, "getbuildinfo2.c");
strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c \"");
strcat_s(command, CMD_SIZE, tmppath); /* quoted tmppath */
strcat_s(command, CMD_SIZE, "getbuildinfo2.c\"");
puts(command); fflush(stdout);
if (system(command) < 0)
return 0;
@ -95,19 +95,21 @@ int main(int argc, char*argv[])
}
if ((do_unlink = make_buildinfo2(tmppath))) {
strcat_s(command, CMD_SIZE, "\"");
strcat_s(command, CMD_SIZE, tmppath);
strcat_s(command, CMD_SIZE, "getbuildinfo2.c -DSUBWCREV ");
strcat_s(command, CMD_SIZE, "getbuildinfo2.c\" -DSUBWCREV ");
} else
strcat_s(command, CMD_SIZE, "..\\Modules\\getbuildinfo.c");
strcat_s(command, CMD_SIZE, " -Fo");
strcat_s(command, CMD_SIZE, " -Fo\"");
strcat_s(command, CMD_SIZE, tmppath);
strcat_s(command, CMD_SIZE, "getbuildinfo.o -I..\\Include -I..\\PC");
strcat_s(command, CMD_SIZE, "getbuildinfo.o\" -I..\\Include -I..\\PC");
puts(command); fflush(stdout);
result = system(command);
if (do_unlink) {
command[0] = '\0';
strcat_s(command, CMD_SIZE, "\"");
strcat_s(command, CMD_SIZE, tmppath);
strcat_s(command, CMD_SIZE, "getbuildinfo2.c");
strcat_s(command, CMD_SIZE, "getbuildinfo2.c\"");
_unlink(command);
}
if (result < 0)

View File

@ -59,11 +59,11 @@
<Tool
Name="VCPreLinkEventTool"
Description="Generate build information..."
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release $(IntDir)"
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release &quot;$(IntDir)\&quot;"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
AdditionalDependencies="&quot;$(IntDir)getbuildinfo.o&quot;"
OutputFile="$(OutDir)\$(PyDllName).dll"
IgnoreDefaultLibraryNames="libc"
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
@ -134,11 +134,11 @@
<Tool
Name="VCPreLinkEventTool"
Description="Generate build information..."
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release $(IntDir)"
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release &quot;$(IntDir)\&quot;"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
AdditionalDependencies="&quot;$(IntDir)getbuildinfo.o&quot;"
OutputFile="$(OutDir)\$(PyDllName).dll"
IgnoreDefaultLibraryNames="libc"
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
@ -212,11 +212,11 @@
<Tool
Name="VCPreLinkEventTool"
Description="Generate build information..."
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Debug $(IntDir)"
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Debug &quot;$(IntDir)\&quot;"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
AdditionalDependencies="&quot;$(IntDir)getbuildinfo.o&quot;"
OutputFile="$(OutDir)\$(PyDllName)_d.dll"
IgnoreDefaultLibraryNames="libc"
ProgramDatabaseFile="$(OutDir)$(PyDllName)_d.pdb"
@ -290,11 +290,11 @@
<Tool
Name="VCPreLinkEventTool"
Description="Generate build information..."
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Debug $(IntDir)"
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Debug &quot;$(IntDir)\&quot;"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
AdditionalDependencies="&quot;$(IntDir)getbuildinfo.o&quot;"
OutputFile="$(OutDir)\$(PyDllName)_d.dll"
IgnoreDefaultLibraryNames="libc"
ProgramDatabaseFile="$(OutDir)$(PyDllName)_d.pdb"
@ -364,11 +364,11 @@
<Tool
Name="VCPreLinkEventTool"
Description="Generate build information..."
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release $(IntDir)"
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release &quot;$(IntDir)\&quot;"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
AdditionalDependencies="&quot;$(IntDir)getbuildinfo.o&quot;"
OutputFile="$(OutDir)\$(PyDllName).dll"
IgnoreDefaultLibraryNames="libc"
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
@ -439,11 +439,11 @@
<Tool
Name="VCPreLinkEventTool"
Description="Generate build information..."
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release $(IntDir)"
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release &quot;$(IntDir)\&quot;"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
AdditionalDependencies="&quot;$(IntDir)getbuildinfo.o&quot;"
OutputFile="$(OutDir)\$(PyDllName).dll"
IgnoreDefaultLibraryNames="libc"
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
@ -514,11 +514,11 @@
<Tool
Name="VCPreLinkEventTool"
Description="Generate build information..."
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release ($IntDir)"
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release &quot;$(IntDir)\&quot;"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
AdditionalDependencies="&quot;$(IntDir)getbuildinfo.o&quot;"
OutputFile="$(OutDir)\$(PyDllName).dll"
IgnoreDefaultLibraryNames="libc"
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
@ -589,11 +589,11 @@
<Tool
Name="VCPreLinkEventTool"
Description="Generate build information..."
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release $(IntDir)"
CommandLine="&quot;$(SolutionDir)make_buildinfo.exe&quot; Release &quot;$(IntDir)\&quot;"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
AdditionalDependencies="&quot;$(IntDir)getbuildinfo.o&quot;"
OutputFile="$(OutDir)\$(PyDllName).dll"
IgnoreDefaultLibraryNames="libc"
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"