Wietse Venema: > Christian Roessner: > > I double checked that cacert.org's cert is in that path as well > > and that the c_hash exists, too. I did not find an answer and so > > I only changed the log level of smtpd_tls_loglevel = 1 to 3. This > > brought the segfault and this in the logs: > > > > Feb 6 19:11:54 mx postfix/master[14500]: warning: process > > /usr/lib/postfix/smtpd pid 14526 killed by signal 11 > > Feb 6 19:13:15 mx postfix/master[14736]: warning: process > > /usr/lib/postfix/smtpd pid 14784 killed by signal 11 > > > > That's easy enough to verify with default configuration and > > openssl s_client -starttls smtp -connect 127.0.0.1:25 > > For now, just don't set smtpd_tls_loglevel >= 3.
Or apply the patch below (Postfix 2.8 and later). Wietse diff -cr /var/tmp/postfix-2.9-20110205/src/tls/tls_server.c src/tls/tls_server.c *** /var/tmp/postfix-2.9-20110205/src/tls/tls_server.c Fri Dec 31 19:01:44 2010 --- src/tls/tls_server.c Mon Feb 7 09:35:39 2011 *************** *** 658,663 **** --- 658,675 ---- SSL_set_accept_state(TLScontext->con); /* + * Connect the SSL connection with the network socket. + */ + if (SSL_set_fd(TLScontext->con, props->stream == 0 ? 0 : + vstream_fileno(props->stream)) != 1) { + msg_info("SSL_set_fd error to %s", props->namaddr); + tls_print_errors(); + uncache_session(app_ctx->ssl_ctx, TLScontext); + tls_free_context(TLScontext); + return (0); + } + + /* * If the debug level selected is high enough, all of the data is dumped: * 3 will dump the SSL negotiation, 4 will dump everything. * *************** *** 676,692 **** return (TLScontext); /* - * Connect the SSL connection with the network socket. - */ - if (SSL_set_fd(TLScontext->con, vstream_fileno(props->stream)) != 1) { - msg_info("SSL_set_fd error to %s", props->namaddr); - tls_print_errors(); - uncache_session(app_ctx->ssl_ctx, TLScontext); - tls_free_context(TLScontext); - return (0); - } - - /* * Turn on non-blocking I/O so that we can enforce timeouts on network * I/O. */ --- 688,693 ----