diff --git a/SoObjects/Mailer/SOGoDraftObject.m b/SoObjects/Mailer/SOGoDraftObject.m index 2e210e011..ae5e8137c 100644 --- a/SoObjects/Mailer/SOGoDraftObject.m +++ b/SoObjects/Mailer/SOGoDraftObject.m @@ -713,21 +713,25 @@ static BOOL showTextAttachmentsInline = NO; return ma; } -- (BOOL) isValidAttachmentName: (NSString *) _name +- (BOOL) isValidAttachmentName: (NSString *) filename { static NSString *sescape[] = { @"/", @"..", @"~", @"\"", @"'", nil }; - unsigned i; + unsigned int i; NSRange r; + BOOL result; - if (![_name isNotNull]) return NO; - if ([_name length] == 0) return NO; - if ([_name hasPrefix: @"."]) return NO; - - for (i = 0; sescape[i] != nil; i++) { - r = [_name rangeOfString:sescape[i]]; - if (r.length > 0) return NO; - } - return YES; + 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; } - (NSString *) pathToAttachmentWithName: (NSString *) _name diff --git a/UI/MailerUI/UIxMailEditor.m b/UI/MailerUI/UIxMailEditor.m index fd45643ca..18e2bd8a0 100644 --- a/UI/MailerUI/UIxMailEditor.m +++ b/UI/MailerUI/UIxMailEditor.m @@ -337,15 +337,11 @@ static NSArray *infoKeys = nil; co = [self clientObject]; allKeys = [[request formValueKeys] objectEnumerator]; - key = [allKeys nextObject]; - while (key && success) - { - if ([key hasPrefix: @"attachment"]) - success - = (![co saveAttachment: (NSData *) [request formValueForKey: key] - withMetadata: [filenames objectForKey: key]]); - key = [allKeys nextObject]; - } + while ((key = [allKeys nextObject]) && success) + if ([key hasPrefix: @"attachment"]) + success + = (![co saveAttachment: (NSData *) [request formValueForKey: key] + withMetadata: [filenames objectForKey: key]]); return success; }