aboutsummaryrefslogtreecommitdiff
path: root/src/client/linux/handler
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/linux/handler')
-rw-r--r--src/client/linux/handler/exception_handler.cc2
-rw-r--r--src/client/linux/handler/minidump_descriptor.h15
2 files changed, 15 insertions, 2 deletions
diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
index 9a56c14b..fd12642c 100644
--- a/src/client/linux/handler/exception_handler.cc
+++ b/src/client/linux/handler/exception_handler.cc
@@ -521,6 +521,7 @@ bool ExceptionHandler::DoDump(pid_t crashing_process, const void* context,
size_t context_size) {
if (minidump_descriptor_.IsFD()) {
return google_breakpad::WriteMinidump(minidump_descriptor_.fd(),
+ minidump_descriptor_.size_limit(),
crashing_process,
context,
context_size,
@@ -528,6 +529,7 @@ bool ExceptionHandler::DoDump(pid_t crashing_process, const void* context,
app_memory_list_);
}
return google_breakpad::WriteMinidump(minidump_descriptor_.path(),
+ minidump_descriptor_.size_limit(),
crashing_process,
context,
context_size,
diff --git a/src/client/linux/handler/minidump_descriptor.h b/src/client/linux/handler/minidump_descriptor.h
index dc2719ac..3036cadb 100644
--- a/src/client/linux/handler/minidump_descriptor.h
+++ b/src/client/linux/handler/minidump_descriptor.h
@@ -31,6 +31,8 @@
#define CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
#include <assert.h>
+#include <sys/types.h>
+
#include <string>
#include "common/using_std_string.h"
@@ -48,11 +50,15 @@ class MinidumpDescriptor {
explicit MinidumpDescriptor(const string& directory)
: fd_(-1),
directory_(directory),
- c_path_(NULL) {
+ c_path_(NULL),
+ size_limit_(-1) {
assert(!directory.empty());
}
- explicit MinidumpDescriptor(int fd) : fd_(fd), c_path_(NULL) {
+ explicit MinidumpDescriptor(int fd)
+ : fd_(fd),
+ c_path_(NULL),
+ size_limit_(-1) {
assert(fd != -1);
}
@@ -71,6 +77,9 @@ class MinidumpDescriptor {
// Should be called from a normal context: this methods uses the heap.
void UpdatePath();
+ off_t size_limit() const { return size_limit_; }
+ void set_size_limit(off_t limit) { size_limit_ = limit; }
+
private:
// The file descriptor where the minidump is generated.
int fd_;
@@ -82,6 +91,8 @@ class MinidumpDescriptor {
// The C string of |path_|. Precomputed so it can be access from a compromised
// context.
const char* c_path_;
+
+ off_t size_limit_;
};
} // namespace google_breakpad