From c966b00c708308cab8ea60f9ae3fd5c041badbb9 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Wed, 10 Sep 2008 19:50:27 +0000 Subject: [PATCH] Monotone-Parent: 0dd43a8d058a214365a36681cd3df3b5c919b0f1 Monotone-Revision: f537b5805052d9a9bfb04e2f651abef055885f53 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-09-10T19:50:27 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 7 +++++++ SoObjects/Mailer/SOGoDraftObject.m | 20 +++----------------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index a5b82cc80..ecdda2e0d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-09-10 Wolfgang Sourdeau + + * SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject + -isValidAttachmentName:filename]): accept all filenames except + ".", ".." and those that contain "/". Any other is valid and will + be accepted. + 2008-09-08 Ludovic Marcotte * SoObjects/SOGo/LDAPSource.m ([LDAPSource diff --git a/SoObjects/Mailer/SOGoDraftObject.m b/SoObjects/Mailer/SOGoDraftObject.m index d526f8922..7eb463975 100644 --- a/SoObjects/Mailer/SOGoDraftObject.m +++ b/SoObjects/Mailer/SOGoDraftObject.m @@ -719,23 +719,9 @@ static BOOL showTextAttachmentsInline = NO; - (BOOL) isValidAttachmentName: (NSString *) filename { - static NSString *sescape[] = { @"/", @"..", @"~", @"\"", @"'", nil }; - unsigned int i; - NSRange r; - BOOL result; - - result = ([filename length] && ![filename hasPrefix: @"."]); - i = 0; - while (result && sescape[i]) - { - r = [filename rangeOfString: sescape[i]]; - if (r.length > 0) - result = NO; - else - i++; - } - - return result; + return (!([filename rangeOfString: @"/"].length + || [filename isEqualToString: @"."] + || [filename isEqualToString: @".."])); } - (NSString *) pathToAttachmentWithName: (NSString *) _name