Skip to content

Commit

Permalink
feat: warn when crash key name is longer than 39 bytes (#30742)
Browse files Browse the repository at this point in the history
Signed-off-by: Darshan Sen <darshan.sen@postman.com>
  • Loading branch information
RaisinTen committed Sep 7, 2021
1 parent 55c5780 commit 90a3e7f
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions shell/common/crash_keys.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
#include "electron/buildflags/buildflags.h"
#include "electron/fuses.h"
#include "shell/common/electron_constants.h"
#include "shell/common/node_includes.h"
#include "shell/common/options_switches.h"
#include "shell/common/process_util.h"
#include "third_party/crashpad/crashpad/client/annotation.h"

#include "gin/wrappable.h"
Expand Down Expand Up @@ -93,9 +95,17 @@ static_assert(kMaxCrashKeyNameLength <= crashpad::Annotation::kNameMaxLength,
void SetCrashKey(const std::string& key, const std::string& value) {
// Chrome DCHECK()s if we try to set an annotation with a name longer than
// the max.
// TODO(nornagon): warn the developer (via console.warn) when this happens.
if (key.size() >= kMaxCrashKeyNameLength)
if (key.size() >= kMaxCrashKeyNameLength) {
node::Environment* env =
node::Environment::GetCurrent(JavascriptEnvironment::GetIsolate());
EmitWarning(env,
"The crash key name, \"" + key + "\", is longer than " +
std::to_string(kMaxCrashKeyNameLength) +
" bytes, ignoring it.",
"electron");
return;
}

auto& crash_key_names = GetExtraCrashKeyNames();

auto iter = std::find(crash_key_names.begin(), crash_key_names.end(), key);
Expand Down

0 comments on commit 90a3e7f

Please sign in to comment.