From d3d6027a4f0fbc7ca54e58a2e63284b9692e24c5 Mon Sep 17 00:00:00 2001 From: Bob Owen Date: Wed, 18 Oct 2017 12:04:52 +0100 Subject: [PATCH] Bug 1372823 Part 3: Annotate crash with database name when storage connection not closed. r=janv --- storage/mozStorageService.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp index 6439e60261cb..a0acad292e43 100644 --- a/storage/mozStorageService.cpp +++ b/storage/mozStorageService.cpp @@ -26,7 +26,11 @@ #include "sqlite3.h" #include "mozilla/AutoSQLiteLifetime.h" -#ifdef SQLITE_OS_WIN +#ifdef MOZ_CRASHREPORTER +#include "nsExceptionHandler.h" +#endif + +#ifdef XP_WIN // "windows.h" was included and it can #define lots of things we care about... #undef CompareString #endif @@ -824,6 +828,17 @@ Service::Observe(nsISupports *, const char *aTopic, const char16_t *) getConnections(connections); for (uint32_t i = 0, n = connections.Length(); i < n; i++) { if (!connections[i]->isClosed()) { +#ifdef MOZ_CRASHREPORTER + // getFilename is only the leaf name for the database file, + // so it shouldn't contain privacy-sensitive information. + CrashReporter::AnnotateCrashReport( + NS_LITERAL_CSTRING("StorageConnectionNotClosed"), + connections[i]->getFilename()); +#endif +#ifdef DEBUG + printf_stderr("Storage connection not closed: %s", + connections[i]->getFilename().get()); +#endif MOZ_CRASH(); } }