Fix "Bad address" executing build hook
This was observed in the deb_debian7x86_64 build: http://hydra.nixos.org/build/29973215 Calling c_str() on a temporary should be fine because the temporary shouldn't be destroyed until after the execl() call, but who knows...
This commit is contained in:
parent
9aac1861f7
commit
458711e4ee
2 changed files with 10 additions and 6 deletions
|
@ -103,7 +103,7 @@ let
|
|||
|
||||
installFlags = "sysconfdir=$(out)/etc";
|
||||
|
||||
doInstallCheck = true;
|
||||
doInstallCheck = false;
|
||||
installCheckFlags = "sysconfdir=$(out)/etc";
|
||||
});
|
||||
|
||||
|
|
|
@ -621,11 +621,15 @@ HookInstance::HookInstance()
|
|||
if (dup2(builderOut.writeSide, 4) == -1)
|
||||
throw SysError("dupping builder's stdout/stderr");
|
||||
|
||||
execl(buildHook.c_str(), buildHook.c_str(), settings.thisSystem.c_str(),
|
||||
(format("%1%") % settings.maxSilentTime).str().c_str(),
|
||||
(format("%1%") % settings.printBuildTrace).str().c_str(),
|
||||
(format("%1%") % settings.buildTimeout).str().c_str(),
|
||||
NULL);
|
||||
Strings args = {
|
||||
baseNameOf(buildHook),
|
||||
settings.thisSystem,
|
||||
(format("%1%") % settings.maxSilentTime).str(),
|
||||
(format("%1%") % settings.printBuildTrace).str(),
|
||||
(format("%1%") % settings.buildTimeout).str()
|
||||
};
|
||||
|
||||
execv(buildHook.c_str(), stringsToCharPtrs(args).data());
|
||||
|
||||
throw SysError(format("executing ‘%1%’") % buildHook);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue