MailCore / mailcore2

MailCore 2 provide a simple and asynchronous API to work with e-mail protocols IMAP, POP and SMTP. The API has been redesigned from ground up.
Other
2.6k stars 624 forks source link

Crash when Validating SMTP Settings #253

Closed f2m2rd closed 11 years ago

f2m2rd commented 11 years ago

When validating SMTP settings for a GMAIL account (we haven't tried another provider), we are getting an exec bad access.

_Here are the crash details:_

carray.h, line 128

static INLINE unsigned int carray_count(carray * array)
{
  return array->len;
}

MCCertificateUtils.h, line 31

 for(unsigned int i = 0 ; i < carray_count(cCerts) ; i ++) {
        MMAPString * str;
        str = (MMAPString *) carray_get(cCerts, i);
        CFDataRef data = CFDataCreate(NULL, (const UInt8 *) str->str, (CFIndex) str->len);
        SecCertificateRef cert = SecCertificateCreateWithData(NULL, data);
        CFArrayAppendValue(certificates, cert);
        CFRelease(data);

        OSStatus status = SecTrustCreateWithCertificates(certificates, policy, &trust);
        SecTrustResultType trustResult;
        status = SecTrustEvaluate(trust, &trustResult);
        switch (trustResult) {
            case kSecTrustResultUnspecified:
            case kSecTrustResultProceed:
                // certificate chain is ok
                result = true;
                break;

            default:
                // certificate chain is invalid
                break;
        }
    }

_LOG_

2013-07-29 15:24:12.104 [1226:7e17] MCOperationQueue.cc:56: start thread
2013-07-29 15:24:12.105 [1226:7e17] MCIMAPSession.cc:569: connect <mailcore::IMAPSession:0x20b6f420>
2013-07-29 15:24:12.142 DestroyMail[1226:5f33] Reachability Flag Status: -R -------
2013-07-29 15:24:12.676 [1226:7e17] MCIMAPSession.cc:594: ssl connect imap.gmail.com 993 2
2013-07-29 15:24:12.869 [1226:7e17] MCIMAPSession.cc:638: connect ok
2013-07-29 15:24:12.869 [1226:7e17] MCIMAPSession.cc:672: login
2013-07-29 15:24:13.650 [1226:7e17] MCIMAPSession.cc:811: login ok
2013-07-29 15:24:13.652 [1226:9903] MCOperationQueue.cc:56: start thread
2013-07-29 15:24:13.652 [1226:9903] MCSMTPSession.cc:231: connect smtp.gmail.com 587
2013-07-29 15:24:13.652 [1226:7e17] MCOperationQueue.cc:109: check running 0x20b6a6f0
2013-07-29 15:24:13.795 [1226:9903] MCSMTPSession.cc:238: init
2013-07-29 15:24:13.846 [1226:9903] MCSMTPSession.cc:253: start TLS
2013-07-29 15:24:13.899 [1226:9903] MCSMTPSession.cc:259: done
dinhvh commented 11 years ago

Could you update? I committed a workaround for that crash.

Hoa V. Dinh

On Monday, July 29, 2013 at 3:31 PM, f2m2rd wrote:

When validating SMTP settings for a GMAIL account (we haven't tried another provider), we are getting an exec bad access.
Here are the crash details: carray.h, line 128 static INLINE unsigned int carray_count(carray * array) { return array->len; }

MCCertificateUtils.h, line 31 for(unsigned int i = 0 ; i < carray_count(cCerts) ; i ++) { MMAPString * str; str = (MMAPString ) carray_get(cCerts, i); CFDataRef data = CFDataCreate(NULL, (const UInt8 ) str->str, (CFIndex) str->len); SecCertificateRef cert = SecCertificateCreateWithData(NULL, data); CFArrayAppendValue(certificates, cert); CFRelease(data); OSStatus status = SecTrustCreateWithCertificates(certificates, policy, &trust); SecTrustResultType trustResult; status = SecTrustEvaluate(trust, &trustResult); switch (trustResult) { case kSecTrustResultUnspecified: case kSecTrustResultProceed: // certificate chain is ok result = true; break; default: // certificate chain is invalid break; } }

LOG 2013-07-29 15:24:12.104 [1226:7e17] MCOperationQueue.cc:56: start thread 2013-07-29 15:24:12.105 [1226:7e17] MCIMAPSession.cc:569: connect mailcore::IMAPSession:0x20b6f420 2013-07-29 15:24:12.142 DestroyMail[1226:5f33] Reachability Flag Status: -R ------- 2013-07-29 15:24:12.676 [1226:7e17] MCIMAPSession.cc:594: ssl connect imap.gmail.com 993 2 2013-07-29 15:24:12.869 [1226:7e17] MCIMAPSession.cc:638: connect ok 2013-07-29 15:24:12.869 [1226:7e17] MCIMAPSession.cc:672: login 2013-07-29 15:24:13.650 [1226:7e17] MCIMAPSession.cc:811: login ok 2013-07-29 15:24:13.652 [1226:9903] MCOperationQueue.cc:56: start thread 2013-07-29 15:24:13.652 [1226:9903] MCSMTPSession.cc:231: connect smtp.gmail.com 587 2013-07-29 15:24:13.652 [1226:7e17] MCOperationQueue.cc:109: check running 0x20b6a6f0 2013-07-29 15:24:13.795 [1226:9903] MCSMTPSession.cc:238: init 2013-07-29 15:24:13.846 [1226:9903] MCSMTPSession.cc:253: start TLS 2013-07-29 15:24:13.899 [1226:9903] MCSMTPSession.cc:259: done

— Reply to this email directly or view it on GitHub (https://github.com/MailCore/mailcore2/issues/253).

f2m2rd commented 11 years ago

We did a pull, but I guess the static libs needed to be rebuilt? Closing out.