mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-05-08 08:58:38 +01:00
When checking files, handle trailing whitespace
This commit is contained in:
@@ -25,16 +25,30 @@ describe('isFileDangerous', () => {
|
||||
assert.strictEqual(isFileDangerous('downl.SettingContent-ms'), true);
|
||||
});
|
||||
|
||||
it('returns false for non-dangerous files that end in ".", which can happen on Windows', () => {
|
||||
it('returns false for non-dangerous files that end in "."', () => {
|
||||
assert.strictEqual(isFileDangerous('dog.png.'), false);
|
||||
assert.strictEqual(isFileDangerous('resume.docx.'), false);
|
||||
});
|
||||
|
||||
it('returns true for dangerous files that end in ".", which can happen on Windows', () => {
|
||||
it('returns true for dangerous files that end in "."', () => {
|
||||
assert.strictEqual(isFileDangerous('run.exe.'), true);
|
||||
assert.strictEqual(isFileDangerous('install.pif.'), true);
|
||||
});
|
||||
|
||||
it('returns false for non-dangerous files that end in whitespace', () => {
|
||||
assert.strictEqual(isFileDangerous('dog.png '), false);
|
||||
assert.strictEqual(isFileDangerous('resume.docx '), false);
|
||||
assert.strictEqual(isFileDangerous('resume.docx\t\n '), false);
|
||||
assert.strictEqual(isFileDangerous('resume.docx\t\n\n\n '), false);
|
||||
});
|
||||
|
||||
it('returns true for dangerous files that end in whitespace', () => {
|
||||
assert.strictEqual(isFileDangerous('run.exe '), true);
|
||||
assert.strictEqual(isFileDangerous('install.pif '), true);
|
||||
assert.strictEqual(isFileDangerous('install.pif\t\n '), true);
|
||||
assert.strictEqual(isFileDangerous('install.pif\t\n\n\n '), true);
|
||||
});
|
||||
|
||||
it('returns false for empty filename', () => {
|
||||
assert.strictEqual(isFileDangerous(''), false);
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
const DANGEROUS_FILE_TYPES =
|
||||
/\.(ADE|ADP|APK|BAT|CAB|CHM|CMD|COM|CPL|DIAGCAB|DLL|DMG|EXE|HTA|INF|INS|ISP|JAR|JS|JSE|LIB|LNK|MDE|MHT|MSC|MSI|MSP|MST|NSH|PIF|PS1|PSC1|PSM1|PSRC|REG|SCR|SCT|SETTINGCONTENT-MS|SHB|SYS|VB|VBE|VBS|VXD|WSC|WSF|WSH)\.?$/i;
|
||||
/\.(ADE|ADP|APK|BAT|CAB|CHM|CMD|COM|CPL|DIAGCAB|DLL|DMG|EXE|HTA|INF|INS|ISP|JAR|JS|JSE|LIB|LNK|MDE|MHT|MSC|MSI|MSP|MST|NSH|PIF|PS1|PSC1|PSM1|PSRC|REG|SCR|SCT|SETTINGCONTENT-MS|SHB|SYS|VB|VBE|VBS|VXD|WSC|WSF|WSH)(\.|\s+)?$/i;
|
||||
|
||||
export function isFileDangerous(fileName: string): boolean {
|
||||
return DANGEROUS_FILE_TYPES.test(fileName);
|
||||
|
||||
Reference in New Issue
Block a user