From 899c082633dd13e3d053e2d46895faea12bfe074 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Wed, 29 May 2019 13:50:29 -0400 Subject: [PATCH] Googletest export Add a safety nullptr check to catch the case where the /tmp file used for capturing a stream cannot be created. PiperOrigin-RevId: 250523012 --- CONTRIBUTING.md | 3 +-- googletest/src/gtest-port.cc | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4709e105..b52f8ee5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,8 +20,7 @@ instructions for how to sign and return it. Once we receive it, we'll be able to accept your pull requests. ## Are you a Googler? -If you are a Googler, plese make an attempt to submit an internal change rather than a GitHub Pull Request. -If you are not able to submit an internal change a PR is acceptable as an alternative. +If you are a Googler, you can either create an internal change or work on GitHub directly. ## Contributing A Patch diff --git a/googletest/src/gtest-port.cc b/googletest/src/gtest-port.cc index 4015a1c1..74daaaa5 100644 --- a/googletest/src/gtest-port.cc +++ b/googletest/src/gtest-port.cc @@ -1113,6 +1113,11 @@ class CapturedStream { char name_template[] = "/tmp/captured_stream.XXXXXX"; # endif // GTEST_OS_LINUX_ANDROID const int captured_fd = mkstemp(name_template); + if (captured_fd == -1) { + GTEST_LOG_(WARNING) + << "Failed to create tmp file " << name_template + << " for test; does the test have access to the /tmp directory?"; + } filename_ = name_template; # endif // GTEST_OS_WINDOWS fflush(nullptr); @@ -1134,6 +1139,10 @@ class CapturedStream { } FILE* const file = posix::FOpen(filename_.c_str(), "r"); + if (file == nullptr) { + GTEST_LOG_(FATAL) << "Failed to open tmp file " << filename_ + << " for capturing stream."; + } const std::string content = ReadEntireFile(file); posix::FClose(file); return content;