Skip to content

Commit

Permalink
Fix escaping of quotes in coverage helper
Browse files Browse the repository at this point in the history
  • Loading branch information
horenmar committed Sep 21, 2019
1 parent fc2066b commit de42f8a
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions misc/coverage-helper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ std::string escape_arg(const std::string& arg) {
escaped.append(num_backslashes * 2, '\\');
break;
} else if (*it == '"') {
escaped.append(num_backslashes * 2 + 1, '\\');
escaped.append((num_backslashes + 1) * 2, '\\');
escaped.push_back('"');
escaped.push_back(*it);
} else {
escaped.append(num_backslashes, '\\');
Expand Down Expand Up @@ -97,7 +98,7 @@ int exec_cmd(std::string const& cmd, int log_num, std::string const& path) {
+ ".bin --quiet " + "--sources " + escape_arg(path) + " --cover_children -- " + cmd;
std::cout << "=== Marker ===: Cmd: " << real_cmd << '\n';
auto pipe = _popen(real_cmd.c_str(), "r");

if (!pipe) {
throw std::runtime_error("popen() failed!");
}
Expand All @@ -106,12 +107,12 @@ int exec_cmd(std::string const& cmd, int log_num, std::string const& path) {
std::cout << buffer.data();
}
}

auto ret = _pclose(pipe);
if (ret == -1) {
throw std::runtime_error("underlying error in pclose()");
}

return ret;
}

Expand All @@ -127,7 +128,7 @@ int main(int argc, char** argv) {
assert(sep - begin(args) == 2 && "Structure differs from expected!");

auto num = parse_log_file_arg(args[1]);

auto cmdline = std::accumulate(++sep, end(args), std::string{}, [] (const std::string& lhs, const std::string& rhs) {
return lhs + ' ' + escape_arg(rhs);
});
Expand Down

0 comments on commit de42f8a

Please sign in to comment.