From 8f93ac29dd91956828387fc3f7496243c2c51b91 Mon Sep 17 00:00:00 2001 From: radhakrishnan Date: Thu, 24 Jul 2025 21:13:20 +0530 Subject: [PATCH] Improve msgconvert error handling and security - Remove unnecessary stdout logging to reduce output clutter - Sanitize stderr logging to protect sensitive path information - Return targetPath instead of generic 'Done' message for better caller context - Use proper Error objects instead of string rejections - Address Sourcery AI feedback from PR #370 --- src/converters/msgconvert.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/converters/msgconvert.ts b/src/converters/msgconvert.ts index 9d13a8f..b6bf826 100644 --- a/src/converters/msgconvert.ts +++ b/src/converters/msgconvert.ts @@ -26,22 +26,20 @@ export function convert( execFile("msgconvert", args, (error, stdout, stderr) => { if (error) { - reject(`error: ${error}`); + reject(new Error(`msgconvert failed: ${error.message}`)); return; } - if (stdout) { - console.log(`stdout: ${stdout}`); - } - if (stderr) { - console.error(`stderr: ${stderr}`); + // Log sanitized stderr to avoid exposing sensitive paths + const sanitizedStderr = stderr.replace(/(\/[^\s]+)/g, "[REDACTED_PATH]"); + console.warn(`msgconvert stderr: ${sanitizedStderr.length > 200 ? sanitizedStderr.slice(0, 200) + '...' : sanitizedStderr}`); } - resolve("Done"); + resolve(targetPath); }); } else { - reject(`Unsupported conversion from ${fileType} to ${convertTo}. Only MSG to EML conversion is currently supported.`); + reject(new Error(`Unsupported conversion from ${fileType} to ${convertTo}. Only MSG to EML conversion is currently supported.`)); } }); }