summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/shared_memory_posix.cc9
-rw-r--r--chrome/browser/renderer_host/buffered_resource_handler.cc6
2 files changed, 12 insertions, 3 deletions
diff --git a/base/shared_memory_posix.cc b/base/shared_memory_posix.cc
index fe4b225..55adcb4 100644
--- a/base/shared_memory_posix.cc
+++ b/base/shared_memory_posix.cc
@@ -225,7 +225,14 @@ bool SharedMemory::CreateOrOpen(const std::wstring &name,
}
mapped_file_ = dup(fileno(fp));
- DCHECK(mapped_file_ >= 0);
+ if (mapped_file_ == -1) {
+ if (errno == EMFILE) {
+ LOG(WARNING) << "Shared memory creation failed; out of file descriptors";
+ return false;
+ } else {
+ NOTREACHED() << "Call to dup failed, errno=" << errno;
+ }
+ }
struct stat st;
if (fstat(mapped_file_, &st))
diff --git a/chrome/browser/renderer_host/buffered_resource_handler.cc b/chrome/browser/renderer_host/buffered_resource_handler.cc
index 5ac037a..cc9d2cb 100644
--- a/chrome/browser/renderer_host/buffered_resource_handler.cc
+++ b/chrome/browser/renderer_host/buffered_resource_handler.cc
@@ -94,12 +94,14 @@ bool BufferedResourceHandler::OnWillRead(int request_id, net::IOBuffer** buf,
if (finished_)
return false;
- bool ret = real_handler_->OnWillRead(request_id, buf, buf_size, min_size);
+ if (!real_handler_->OnWillRead(request_id, buf, buf_size, min_size)) {
+ return false;
+ }
read_buffer_ = *buf;
read_buffer_size_ = *buf_size;
DCHECK(read_buffer_size_ >= kMaxBytesToSniff * 2);
bytes_read_ = 0;
- return ret;
+ return true;
}
bool BufferedResourceHandler::OnReadCompleted(int request_id, int* bytes_read) {