bb682b4d7f
CreateDefaultDisplayReporter() transfers ownership of the returned reporter to the caller, but cached that owning pointer in a function-local static. After the first RunSpecifiedBenchmarks() call destroyed the reporter, a subsequent call returned the same, now dangling pointer, causing a heap-use-after-free in BenchmarkReporter::GetOutputStream(). Return std::unique_ptr<BenchmarkReporter> so the ownership transfer is expressed in the type, and drop the static so every call returns a fresh reporter.