Skip to content

Commit 206939b

Browse files
committed
Filter crash telemetry data per-line so it's not completely filtered later on.
1 parent 3ffd98f commit 206939b

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

Extension/src/LanguageServer/extension.ts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,8 +1165,9 @@ function handleMacCrashFileRead(err: NodeJS.ErrnoException | undefined | null, d
11651165
logMacCrashTelemetry(data);
11661166
}
11671167

1168-
function containsUnexpectedTelemetryCharacter(str: string): boolean {
1169-
return str.includes("/") || str.includes("\\") || str.includes("@");
1168+
function containsFilteredTelemetryData(str: string): boolean {
1169+
const regex: RegExp = /(key|token|sig|secret|signature|password|passwd|pwd|android:value)[^a-zA-Z0-9]/i;
1170+
return regex.test(str);
11701171
}
11711172

11721173
async function handleCrashFileRead(crashDirectory: string, crashFile: string, crashDate: Date, err: NodeJS.ErrnoException | undefined | null, data: string): Promise<void> {
@@ -1197,10 +1198,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
11971198
if (pendingCrashLogLine === "ENDLOG") {
11981199
break;
11991200
}
1200-
if (!containsUnexpectedTelemetryCharacter(pendingCrashLogLine)) {
1201-
crashLog += pendingCrashLogLine + "\n";
1201+
if (containsFilteredTelemetryData(pendingCrashLogLine)) {
1202+
crashLog += "?\n";
12021203
} else {
1203-
crashLog += "<unexpectedCharacter>\n";
1204+
crashLog += pendingCrashLogLine + "\n";
12041205
}
12051206
}
12061207
crashLog = crashLog.trimEnd();
@@ -1255,12 +1256,11 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12551256
funcStr = funcStr.replace(/, std::allocator<std::string>/g, "");
12561257
}
12571258
}
1258-
if (funcStr.includes("/")) {
1259-
funcStr = "<funcForwardSlash>";
1260-
} else if (funcStr.includes("\\")) {
1261-
funcStr = "<funcBackSlash>";
1262-
} else if (funcStr.includes("@")) {
1263-
funcStr = "<funcAt>";
1259+
if (funcStr.includes("add_token_cache_to_string")) {
1260+
funcStr = funcStr.replace("add_token_cache_to_string", "key");
1261+
}
1262+
if (containsFilteredTelemetryData(funcStr)) {
1263+
funcStr = "?";
12641264
} else if (!validFrameFound && (funcStr.startsWith("crash_handler(") || funcStr.startsWith("_sigtramp"))) {
12651265
continue; // Skip these on early frames.
12661266
}
@@ -1271,10 +1271,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12711271
const offsetPos2: number = offsetPos + offsetStr.length;
12721272
if (isMac) {
12731273
const pendingOffset: string = line.substring(offsetPos2);
1274-
if (!containsUnexpectedTelemetryCharacter(pendingOffset)) {
1275-
crashCallStack += pendingOffset;
1274+
if (containsFilteredTelemetryData(pendingOffset)) {
1275+
crashCallStack += "?";
12761276
} else {
1277-
crashCallStack += "<offsetUnexpectedCharacter>";
1277+
crashCallStack += pendingOffset;
12781278
}
12791279
const startAddressPos: number = line.indexOf("0x");
12801280
if (startAddressPos === -1 || startAddressPos >= startPos) {
@@ -1290,10 +1290,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12901290
continue; // unexpected
12911291
}
12921292
const pendingOffset: string = line.substring(offsetPos2, endPos);
1293-
if (!containsUnexpectedTelemetryCharacter(pendingOffset)) {
1294-
crashCallStack += pendingOffset;
1293+
if (containsFilteredTelemetryData(pendingOffset)) {
1294+
crashCallStack += "?";
12951295
} else {
1296-
crashCallStack += "<offsetUnexpectedCharacter>";
1296+
crashCallStack += pendingOffset;
12971297
}
12981298
}
12991299
}
@@ -1312,8 +1312,8 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
13121312
data = data.substring(0, 8191) + "…";
13131313
}
13141314

1315-
if (containsUnexpectedTelemetryCharacter(addressData)) {
1316-
addressData = "<addressDataUnexpectedCharacter>";
1315+
if (containsFilteredTelemetryData(addressData)) {
1316+
addressData = "?";
13171317
}
13181318

13191319
logCppCrashTelemetry(data, addressData, crashLog);

0 commit comments

Comments
 (0)