diff options
author | John Hodge <tpg@ucc.asn.au> | 2018-01-13 22:37:53 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2018-01-14 08:59:19 +0800 |
commit | a7d4daf2e2d802d78ced6ed48248506963fd1066 (patch) | |
tree | 78c229a18c68fa421cb4f3d804aa98e927238598 | |
parent | 2353096540a6859e8dc45a14570157542543c602 (diff) | |
download | mrust-a7d4daf2e2d802d78ced6ed48248506963fd1066.tar.gz |
minicargo - Fix use-after-free in output directory, terminate build on job failure
-rw-r--r-- | tools/minicargo/build.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/minicargo/build.cpp b/tools/minicargo/build.cpp index df897965..fc9a5df6 100644 --- a/tools/minicargo/build.cpp +++ b/tools/minicargo/build.cpp @@ -429,6 +429,11 @@ bool BuildList::build(BuildOptions opts, unsigned num_jobs) DEBUG("> Thread " << i << " complete"); } + if( queue.failure ) + { + return false; + } + } else if( num_jobs == 1 ) { @@ -589,7 +594,7 @@ bool Builder::build_target(const PackageManifest& manifest, const PackageTarget& } } args.push_back("-o"); args.push_back(outfile); - args.push_back("-L"); args.push_back(this->get_output_dir(is_for_host).str().c_str()); + args.push_back("-L"); args.push_back(this->get_output_dir(is_for_host).str()); for(const auto& dir : manifest.build_script_output().rustc_link_search) { args.push_back("-L"); args.push_back(dir.second.c_str()); } |