Skip to content

Commit 1c5e46b

Browse files
authored
Filter crash telemetry data per-line so it's not completely filtered later on (#13379)
* Filter crash telemetry data per-line so it's not completely filtered later on.
1 parent e43157f commit 1c5e46b

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

Extension/src/LanguageServer/extension.ts

Lines changed: 16 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,8 @@ 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 (containsFilteredTelemetryData(funcStr)) {
1260+
funcStr = "?";
12641261
} else if (!validFrameFound && (funcStr.startsWith("crash_handler(") || funcStr.startsWith("_sigtramp"))) {
12651262
continue; // Skip these on early frames.
12661263
}
@@ -1271,10 +1268,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12711268
const offsetPos2: number = offsetPos + offsetStr.length;
12721269
if (isMac) {
12731270
const pendingOffset: string = line.substring(offsetPos2);
1274-
if (!containsUnexpectedTelemetryCharacter(pendingOffset)) {
1275-
crashCallStack += pendingOffset;
1271+
if (containsFilteredTelemetryData(pendingOffset)) {
1272+
crashCallStack += "?";
12761273
} else {
1277-
crashCallStack += "<offsetUnexpectedCharacter>";
1274+
crashCallStack += pendingOffset;
12781275
}
12791276
const startAddressPos: number = line.indexOf("0x");
12801277
if (startAddressPos === -1 || startAddressPos >= startPos) {
@@ -1290,10 +1287,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12901287
continue; // unexpected
12911288
}
12921289
const pendingOffset: string = line.substring(offsetPos2, endPos);
1293-
if (!containsUnexpectedTelemetryCharacter(pendingOffset)) {
1294-
crashCallStack += pendingOffset;
1290+
if (containsFilteredTelemetryData(pendingOffset)) {
1291+
crashCallStack += "?";
12951292
} else {
1296-
crashCallStack += "<offsetUnexpectedCharacter>";
1293+
crashCallStack += pendingOffset;
12971294
}
12981295
}
12991296
}
@@ -1312,8 +1309,8 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
13121309
data = data.substring(0, 8191) + "…";
13131310
}
13141311

1315-
if (containsUnexpectedTelemetryCharacter(addressData)) {
1316-
addressData = "<addressDataUnexpectedCharacter>";
1312+
if (containsFilteredTelemetryData(addressData)) {
1313+
addressData = "?";
13171314
}
13181315

13191316
logCppCrashTelemetry(data, addressData, crashLog);

0 commit comments

Comments
 (0)