From 05a9229d4a45a1d3b10f7a0abc8db86f7d6c84ec Mon Sep 17 00:00:00 2001 From: Suraj Jha Date: Tue, 19 Aug 2025 18:06:04 +0545 Subject: [PATCH] fix: minor issue with pdf export --- servers/nextjs/app/(presentation-generator)/utils/others.ts | 6 ++++-- servers/nextjs/app/api/export-as-pdf/route.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/servers/nextjs/app/(presentation-generator)/utils/others.ts b/servers/nextjs/app/(presentation-generator)/utils/others.ts index e6ab9b56..83afda95 100644 --- a/servers/nextjs/app/(presentation-generator)/utils/others.ts +++ b/servers/nextjs/app/(presentation-generator)/utils/others.ts @@ -58,9 +58,11 @@ export function removeUUID(fileName: string) { -export function sanitizeFilename(input: string, replacement = '') { +export function sanitizeFilename(input: string | null | undefined, replacement = '') { + // Start with a safe base string to avoid calling string methods on null/undefined + let sanitized = (input ?? '').toString(); // Remove any null bytes first - let sanitized = input.replace(/\0/g, ''); + sanitized = sanitized.replace(/\0/g, ''); // Remove or replace path traversal sequences sanitized = sanitized.replace(/\.\./g, replacement); diff --git a/servers/nextjs/app/api/export-as-pdf/route.ts b/servers/nextjs/app/api/export-as-pdf/route.ts index 10085f9c..59ea3dda 100644 --- a/servers/nextjs/app/api/export-as-pdf/route.ts +++ b/servers/nextjs/app/api/export-as-pdf/route.ts @@ -66,7 +66,7 @@ export async function POST(req: NextRequest) { browser.close(); - const sanitizedTitle = sanitizeFilename(title); + const sanitizedTitle = sanitizeFilename(title ?? 'presentation'); const destinationPath = path.join(process.env.APP_DATA_DIRECTORY!, 'exports', `${sanitizedTitle}.pdf`); await fs.promises.mkdir(path.dirname(destinationPath), { recursive: true }); await fs.promises.writeFile(destinationPath, pdfBuffer);