fix: reject suspicious filenames and match file icons case-insensitively

- Short-circuit validateAndDetectFileType when validateFilename flags a
  suspicious name so files like foo.exe.md cannot bypass the attachment
  allowlist via the new extension MIME fallback.
- Lowercase fileType in getFileIcon so uppercase extensions (e.g. .MD,
  .PDF) resolve to the correct icon.
This commit is contained in:
sriram veeraghanta
2026-05-15 01:54:23 +05:30
parent 86c6b69a54
commit b3747964eb
2 changed files with 2 additions and 1 deletions
@@ -25,7 +25,7 @@ import {
} from "@/components/icons/attachment"; } from "@/components/icons/attachment";
export const getFileIcon = (fileType: string, size: number = 28) => { export const getFileIcon = (fileType: string, size: number = 28) => {
switch (fileType) { switch (fileType.toLowerCase()) {
case "pdf": case "pdf":
return <PdfIcon height={size} width={size} />; return <PdfIcon height={size} width={size} />;
case "csv": case "csv":
+1
View File
@@ -114,6 +114,7 @@ const validateAndDetectFileType = async (file: File): Promise<string> => {
const filenameError = validateFilename(file.name); const filenameError = validateFilename(file.name);
if (filenameError) { if (filenameError) {
console.warn(`File validation warning: ${filenameError}`); console.warn(`File validation warning: ${filenameError}`);
return "";
} }
try { try {