From 206939b28b95a55467257cce1959681f56d8c1d7 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 17 Mar 2025 22:01:32 +0000 Subject: [PATCH 1/2] Filter crash telemetry data per-line so it's not completely filtered later on. --- Extension/src/LanguageServer/extension.ts | 38 +++++++++++------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index f33418a23..e062d2406 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -1165,8 +1165,9 @@ function handleMacCrashFileRead(err: NodeJS.ErrnoException | undefined | null, d logMacCrashTelemetry(data); } -function containsUnexpectedTelemetryCharacter(str: string): boolean { - return str.includes("/") || str.includes("\\") || str.includes("@"); +function containsFilteredTelemetryData(str: string): boolean { + const regex: RegExp = /(key|token|sig|secret|signature|password|passwd|pwd|android:value)[^a-zA-Z0-9]/i; + return regex.test(str); } async function handleCrashFileRead(crashDirectory: string, crashFile: string, crashDate: Date, err: NodeJS.ErrnoException | undefined | null, data: string): Promise { @@ -1197,10 +1198,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr if (pendingCrashLogLine === "ENDLOG") { break; } - if (!containsUnexpectedTelemetryCharacter(pendingCrashLogLine)) { - crashLog += pendingCrashLogLine + "\n"; + if (containsFilteredTelemetryData(pendingCrashLogLine)) { + crashLog += "?\n"; } else { - crashLog += "\n"; + crashLog += pendingCrashLogLine + "\n"; } } crashLog = crashLog.trimEnd(); @@ -1255,12 +1256,11 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr funcStr = funcStr.replace(/, std::allocator/g, ""); } } - if (funcStr.includes("/")) { - funcStr = ""; - } else if (funcStr.includes("\\")) { - funcStr = ""; - } else if (funcStr.includes("@")) { - funcStr = ""; + if (funcStr.includes("add_token_cache_to_string")) { + funcStr = funcStr.replace("add_token_cache_to_string", "key"); + } + if (containsFilteredTelemetryData(funcStr)) { + funcStr = "?"; } else if (!validFrameFound && (funcStr.startsWith("crash_handler(") || funcStr.startsWith("_sigtramp"))) { continue; // Skip these on early frames. } @@ -1271,10 +1271,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr const offsetPos2: number = offsetPos + offsetStr.length; if (isMac) { const pendingOffset: string = line.substring(offsetPos2); - if (!containsUnexpectedTelemetryCharacter(pendingOffset)) { - crashCallStack += pendingOffset; + if (containsFilteredTelemetryData(pendingOffset)) { + crashCallStack += "?"; } else { - crashCallStack += ""; + crashCallStack += pendingOffset; } const startAddressPos: number = line.indexOf("0x"); if (startAddressPos === -1 || startAddressPos >= startPos) { @@ -1290,10 +1290,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr continue; // unexpected } const pendingOffset: string = line.substring(offsetPos2, endPos); - if (!containsUnexpectedTelemetryCharacter(pendingOffset)) { - crashCallStack += pendingOffset; + if (containsFilteredTelemetryData(pendingOffset)) { + crashCallStack += "?"; } else { - crashCallStack += ""; + crashCallStack += pendingOffset; } } } @@ -1312,8 +1312,8 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr data = data.substring(0, 8191) + "…"; } - if (containsUnexpectedTelemetryCharacter(addressData)) { - addressData = ""; + if (containsFilteredTelemetryData(addressData)) { + addressData = "?"; } logCppCrashTelemetry(data, addressData, crashLog); From 722a8841f06160808d02dcc0816e3fe78b7d2a92 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 17 Mar 2025 22:03:00 +0000 Subject: [PATCH 2/2] Remove temp test code. --- Extension/src/LanguageServer/extension.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index e062d2406..76c2dd57b 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -1256,9 +1256,6 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr funcStr = funcStr.replace(/, std::allocator/g, ""); } } - if (funcStr.includes("add_token_cache_to_string")) { - funcStr = funcStr.replace("add_token_cache_to_string", "key"); - } if (containsFilteredTelemetryData(funcStr)) { funcStr = "?"; } else if (!validFrameFound && (funcStr.startsWith("crash_handler(") || funcStr.startsWith("_sigtramp"))) {