Skip to content

[Bug] -get crash when the emlData is huge #2019

@diamondfive

Description

@diamondfive

Summary
get crash when the emlData is huge(about 11mb)

thread #22, queue = 'com.apple.root.user-initiated-qos', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)

  • frame #0: 0x000000010eb86164 SChat.debug.dylibmailcore::HashMap::setObjectForKey(this=0x000000014c8188e0, key=0x0000000151605930, value=0x0000000000000000) at MCHashMap.cpp:161:19 [opt] frame #1: 0x000000010eb803c8 SChat.debug.dylibmailcore::MessageHeader::importIMFFields(this=0x000000014c615570, fields=) at MCMessageHeader.cpp:526:13 [opt]
    frame Windows build with Visual Studio #2: 0x000000010eba34b4 SChat.debug.dylibmailcore::MessageParser::setBytes(this=0x000000014c751bf0, dataBytes=<unavailable>, dataLength=<unavailable>) at MCMessageParser.cpp:70:9 [opt] frame #3: 0x000000010ebd0a70 SChat.debug.dylibmailcore::MessageParser::MessageParser(this=0x000000014c751bf0, data=@"11105983 bytes") at MCMessageParserMac.mm:27:5 [opt]
    frame Implement POP Async API #4: 0x000000010ebc8620 SChat.debug.dylib-[MCOMessageParser initWithData:](self=0x000000014c708110, _cmd=<unavailable>, data=<unavailable>) at MCOMessageParser.mm:41:45 [opt] frame #5: 0x00000001110d1d78 SChat.debug.dylib__46-[TIMEMLPreviewController parseEMLDataSafely:]_block_invoke.113(.block_descriptor=0x0000000122424cd0) at TIMEMLPreviewController.m:465:30
    frame Implement MainThread support for Windows #6: 0x0000000105648f50 libdispatch.dylib_dispatch_call_block_and_release + 32 frame #7: 0x000000010564ab34 libdispatch.dylib_dispatch_client_callout + 20
    frame RFC822 should zip files when attachments are folders #8: 0x000000010565ef0c libdispatch.dylib_dispatch_root_queue_drain + 968 frame #9: 0x000000010565f6cc libdispatch.dylib_dispatch_worker_thread2 + 188
    frame Problems with building #10: 0x000000020ef9f928 libsystem_pthread.dylib`_pthread_wqthread + 228

Piece of code

 MCOMessageParser *parser = nil;
 parser = [[MCOMessageParser alloc] initWithData:emlData];

[session setPassword:@"123456"];
[session setConnectionType:MCOConnectionTypeTLS];

Actual outcome
MailCore did or did not ...

Connection Logs

* ID ("name" "GImap" "vendor" "Google, Inc." "support-url" "https://support.google.com/mail" "version" "gmail_imap_200623.09_p0" "remote-host" "2001:ee0:4fc
5:b6e0:d410:e4d3:77db:fc8e

Expected outcome
MailCore should ...

Link to sample code on GitHub reproducing the issue (a full Xcode project):

https://

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions