From 5340a9ab4c1ab7801ad1055041dec2c2ff50a254 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 14 Aug 2024 16:11:08 +0200 Subject: executor: keep SYZFAIL messages during machine check Replace just the SYZFAIL part instead of the whole message. This makes debugging of things easier. --- executor/executor_runner.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'executor/executor_runner.h') diff --git a/executor/executor_runner.h b/executor/executor_runner.h index f1a4f701d..30a5f3a6d 100644 --- a/executor/executor_runner.h +++ b/executor/executor_runner.h @@ -431,13 +431,16 @@ private: } if (flag_debug) { output_.resize(output_.size() + 1); - const char* output = reinterpret_cast(output_.data()) + debug_output_pos_; + char* output = reinterpret_cast(output_.data()) + debug_output_pos_; // During machine check we can execute some requests that legitimately fail. // These requests have ReturnError flag, so that the failure is returned // to the caller for analysis. Don't print SYZFAIL in these requests, // otherwise it will be detected as a bug. - if (msg_ && IsSet(msg_->flags, rpc::RequestFlag::ReturnError) && strstr(output, "SYZFAIL")) - output = "REDACTED-CONTAINS-FAIL"; + if (msg_ && IsSet(msg_->flags, rpc::RequestFlag::ReturnError)) { + char* syzfail = strstr(output, "SYZFAIL"); + if (syzfail) + memcpy(syzfail, "NOTFAIL", strlen("NOTFAIL")); + } debug("proc %d: got output: %s\n", id_, output); output_.resize(output_.size() - 1); debug_output_pos_ = output_.size(); -- cgit mrf-deployment