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
This commit is contained in:
		
				
					committed by
					
						
						Gennadiy Civil
					
				
			
			
				
	
			
			
			
						parent
						
							f5edb4f542
						
					
				
				
					commit
					899c082633
				
			@@ -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.
 | 
					accept your pull requests.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Are you a Googler?
 | 
					## 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 a Googler, you can either create an internal change or work on GitHub directly.
 | 
				
			||||||
If you are not able to submit an internal change a PR is acceptable as an alternative. 
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Contributing A Patch
 | 
					## Contributing A Patch
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1113,6 +1113,11 @@ class CapturedStream {
 | 
				
			|||||||
    char name_template[] = "/tmp/captured_stream.XXXXXX";
 | 
					    char name_template[] = "/tmp/captured_stream.XXXXXX";
 | 
				
			||||||
#  endif  // GTEST_OS_LINUX_ANDROID
 | 
					#  endif  // GTEST_OS_LINUX_ANDROID
 | 
				
			||||||
    const int captured_fd = mkstemp(name_template);
 | 
					    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;
 | 
					    filename_ = name_template;
 | 
				
			||||||
# endif  // GTEST_OS_WINDOWS
 | 
					# endif  // GTEST_OS_WINDOWS
 | 
				
			||||||
    fflush(nullptr);
 | 
					    fflush(nullptr);
 | 
				
			||||||
@@ -1134,6 +1139,10 @@ class CapturedStream {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    FILE* const file = posix::FOpen(filename_.c_str(), "r");
 | 
					    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);
 | 
					    const std::string content = ReadEntireFile(file);
 | 
				
			||||||
    posix::FClose(file);
 | 
					    posix::FClose(file);
 | 
				
			||||||
    return content;
 | 
					    return content;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user