Merge pull request #1058 from klejejs/fix/zip_file_upload_crash

Fix server crash when non-zip file is uploaded
This commit is contained in:
Amruth Pillai
2022-10-26 07:57:49 +02:00
committed by GitHub
@@ -35,6 +35,7 @@ export class IntegrationsService {
async linkedIn(userId: number, path: string): Promise<ResumeEntity> {
let archive: StreamZip.StreamZipAsync;
let isArchiveValid = false;
try {
archive = new StreamZip.async({ file: path });
@@ -48,6 +49,9 @@ export class IntegrationsService {
slug: `imported-from-linkedin-${timestamp}`,
});
// Check if archive is valid
isArchiveValid = await archive.entries().then((entries) => Object.keys(entries).length > 0);
// Profile
try {
const profileCSV = (await archive.entryData('Profile.csv')).toString();
@@ -261,7 +265,7 @@ export class IntegrationsService {
throw new HttpException('You must upload a valid zip archive downloaded from LinkedIn.', HttpStatus.BAD_REQUEST);
} finally {
await unlink(path);
!isEmpty(archive) && archive.close();
isArchiveValid && archive.close();
}
}