diff --git a/kordophone/Bridge/Operations/MBIMUploadAttachmentOperation.m b/kordophone/Bridge/Operations/MBIMUploadAttachmentOperation.m index 3ec8a64..832b5c1 100644 --- a/kordophone/Bridge/Operations/MBIMUploadAttachmentOperation.m +++ b/kordophone/Bridge/Operations/MBIMUploadAttachmentOperation.m @@ -38,7 +38,14 @@ break; } - NSString *localPath = [NSTemporaryDirectory() stringByAppendingPathComponent:filename]; + // Sanitize filename + NSCharacterSet *dotCharacter = [NSCharacterSet characterSetWithCharactersInString:@"."]; + NSCharacterSet *illegalFileNameCharacters = [NSCharacterSet characterSetWithCharactersInString:@"/\\?%*|\"<>"]; + NSString *sanitizedFilename = [[[filename componentsSeparatedByCharactersInSet:illegalFileNameCharacters] + componentsJoinedByString:@"-"] + stringByTrimmingCharactersInSet:dotCharacter]; + + NSString *localPath = [NSTemporaryDirectory() stringByAppendingPathComponent:sanitizedFilename]; NSURL *localURL = [NSURL fileURLWithPath:localPath]; BOOL success = [attachmentData writeToURL:localURL atomically:NO]; if (!success) {