Crash when sending file with unrecognized extension
Opened this issue · 1 comments
NicolasBuquet commented
In a room, if I send a file attachment with unrecognized extension, the application crashes.
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
The crash occurs here :
// Prepare the message content for building an echo message
NSMutableDictionary *msgContent = @{
kMXMessageTypeKey: msgType,
kMXMessageBodyKey: filename,
@"url": fakeMediaURI,
@"info": @{
@"mimetype": mimeType,
@"size": @(fileData.length)
},
kMXMessageContentKeyExtensibleTextMSC1767: filename,
kMXMessageContentKeyExtensibleFileMSC1767: @{
kMXMessageContentKeyExtensibleFileSize: @(fileData.length),
kMXMessageContentKeyExtensibleFileName: filename,
kMXMessageContentKeyExtensibleFileURL: fakeMediaURI,
kMXMessageContentKeyExtensibleFileMimeType: mimeType
}.mutableCopy}.mutableCopy;
because mimeType
is nil
.
When mimeType
is nil
, it shoud fallback to application/octet-stream
.
NicolasBuquet commented
The fix is :
// Prepare the message content for building an echo message
NSMutableDictionary *msgContent = @{
kMXMessageTypeKey: msgType,
kMXMessageBodyKey: filename,
@"url": fakeMediaURI,
@"info": @{
@"mimetype": (mimeType ?: @"application/octet-stream"),
@"size": @(fileData.length)
},
kMXMessageContentKeyExtensibleTextMSC1767: filename,
kMXMessageContentKeyExtensibleFileMSC1767: @{
kMXMessageContentKeyExtensibleFileSize: @(fileData.length),
kMXMessageContentKeyExtensibleFileName: filename,
kMXMessageContentKeyExtensibleFileURL: fakeMediaURI,
kMXMessageContentKeyExtensibleFileMimeType: (mimeType ?: @"@application/octet-stream"),
}.mutableCopy}.mutableCopy;