diff options
author | Joel Taylor <me@joelt.io> | 2014-08-21T21·06-0700 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-08-21T21·17+0200 |
commit | b224ac15201c57b40ea855f5a98b1bd166c1c7f6 (patch) | |
tree | 936f18ffddf8e92ee50359427159e8c5533430a2 /src | |
parent | 3f80060500bb3a9dff192c11af63da7364673ab0 (diff) |
fix disappearing bash arguments
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/build.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index b64c32d103db..c547a5cbfecf 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -2133,8 +2133,13 @@ void DerivationGoal::initChild() /* Fill in the arguments. */ string builderBasename = baseNameOf(drv.builder); args.push_back(builderBasename.c_str()); - foreach (Strings::iterator, i, drv.args) - args.push_back(rewriteHashes(*i, rewritesToTmp).c_str()); + foreach (Strings::iterator, i, drv.args) { + auto re = rewriteHashes(*i, rewritesToTmp); + auto cstr = new char[re.length()+1]; + std::strcpy(cstr, re.c_str()); + + args.push_back(cstr); + } args.push_back(0); restoreSIGPIPE(); |