diff options
author | Joel Taylor <me@joelt.io> | 2014-08-21 14:06:49 -0700 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-05-11 17:26:37 +0200 |
commit | 8c766e48d5c4741b63a4f24dc91138f587c04a5a (patch) | |
tree | 5841bac55032dbcdd0573568b2fc0d903ed12849 | |
parent | d4e7c195fabf0f24c2ffbd4ca8f189489bbbf44d (diff) | |
download | guix-8c766e48d5c4741b63a4f24dc91138f587c04a5a.tar.gz |
fix disappearing bash arguments
-rw-r--r-- | nix/libstore/build.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index b848b8ca33..5c605a7bd7 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -2163,8 +2163,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(); |