diff --git a/SoObjects/Mailer/SOGoDraftObject.m b/SoObjects/Mailer/SOGoDraftObject.m index 11da52e80..4fadcea70 100644 --- a/SoObjects/Mailer/SOGoDraftObject.m +++ b/SoObjects/Mailer/SOGoDraftObject.m @@ -24,6 +24,7 @@ #import #import #import +#import #import #import #import @@ -1094,7 +1095,7 @@ static NSString *userAgent = nil; - (NSException *) saveAttachment: (NSData *) _attach withMetadata: (NSDictionary *) metadata { - NSString *p, *name, *mimeType; + NSString *p, *pmime, *name, *mimeType; NSRange r; if (![_attach isNotNull]) { @@ -1126,14 +1127,13 @@ static NSString *userAgent = nil; mimeType = [metadata objectForKey: @"mimetype"]; if ([mimeType length] > 0) { - p = [self pathToAttachmentWithName: - [NSString stringWithFormat: @".%@.mime", name]]; - if (![[mimeType dataUsingEncoding: NSUTF8StringEncoding] - writeToFile: p atomically: YES]) - { - return [NSException exceptionWithHTTPStatus:500 /* Server Error */ - reason: @"Could not write attachment to draft!"]; - } + pmime = [self pathToAttachmentWithName: [NSString stringWithFormat: @".%@.mime", name]]; + if (![[mimeType dataUsingEncoding: NSUTF8StringEncoding] writeToFile: pmime atomically: YES]) + { + [[NSFileManager defaultManager] removeItemAtPath: p error: nil]; + return [NSException exceptionWithHTTPStatus: 500 /* Server Error */ + reason: @"Could not write attachment to draft!"]; + } } return nil; /* everything OK */