Wietse Venema:
> As with the OP, Postfix when built with MySQL client has zlib
> explicitly linked in (my earlier test was done on a system where
> MySQL by mistake wasn't included in the build).
> 
> Next step is to reproduce the smtpd crash.

It negotiates a zlib-compressed session without crashing, and this
is with libz linked into smtpd because of the mysql client.

This is with OpenSSL 1.0.1j from ports, installed per defaults.
Evidence is below the signature.

        Wietse

# /usr/local/bin/openssl s_client -connect localhost:25 -starttls smtp
WARNING: can't open config file: /usr/local/openssl/openssl.cnf
CONNECTED(00000003)
depth=1 C = US, ST = New York, O = Porcupine, CN = Wietse Venema, emailAddress 
= wie...@porcupine.org
verify error:num=19:self signed certificate in certificate chain
verify return:0
34381555576:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake 
failure:s23_lib.c:184:
---
Certificate chain
 0 s:/C=US/ST=New 
York/O=Porcupine/CN=localhost/emailAddress=wie...@porcupine.org
   i:/C=US/ST=New York/O=Porcupine/CN=Wietse 
Venema/emailAddress=wie...@porcupine.org
 1 s:/C=US/ST=New York/O=Porcupine/CN=Wietse 
Venema/emailAddress=wie...@porcupine.org
   i:/C=US/ST=New York/O=Porcupine/CN=Wietse 
Venema/emailAddress=wie...@porcupine.org
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIC1zCCAkCgAwIBAgIJAJv1m9sYZSv0MA0GCSqGSIb3DQEBBQUAMHExCzAJBgNV
BAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazESMBAGA1UEChMJUG9yY3VwaW5lMRYw
FAYDVQQDEw1XaWV0c2UgVmVuZW1hMSMwIQYJKoZIhvcNAQkBFhR3aWV0c2VAcG9y
Y3VwaW5lLm9yZzAeFw0xNTAzMjEyMzA2NDBaFw0xNjAzMjAyMzA2NDBaMG0xCzAJ
BgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazESMBAGA1UEChMJUG9yY3VwaW5l
MRIwEAYDVQQDEwlsb2NhbGhvc3QxIzAhBgkqhkiG9w0BCQEWFHdpZXRzZUBwb3Jj
dXBpbmUub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMCumlrrK3dt4+
1vxt4K2yqfMScjHnr/xPUXXWlxERhtUd5LXkLxFsBcXEJVZ69m1EoezZz09OKBUw
FQ9ZAuBbrLvrHJaF6JB9Dz12yacT+2sNvsJFtvJQI4G2l2B1CipeIDkWCeBpDJs5
OuWfGQvT2MGl2hO/tFxVAOSCMtz9pQIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCG
SAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4E
FgQUhvYacbmRj3YXssA1cPQ5TrZcdzAwHwYDVR0jBBgwFoAUdPbTlqZnXmhFWsJ2
qlOfhkG8bE0wDQYJKoZIhvcNAQEFBQADgYEAIg8EVqmTBH2ZetXtro6V2fCzp7/L
a05QeINC5U/2D5y22cyFmKWm5BWe2zKoI35S7GPvuzhthcElwdlZ2YcT76A+sGUm
DuUSmXVHH+vJB/0WD9qMGPkGusRmsnTRbQST/gneSzM2B+c6w1NZTERh07AF522X
/TJ5UfdB7bjF+uE=
-----END CERTIFICATE-----
subject=/C=US/ST=New 
York/O=Porcupine/CN=localhost/emailAddress=wie...@porcupine.org
issuer=/C=US/ST=New York/O=Porcupine/CN=Wietse 
Venema/emailAddress=wie...@porcupine.org
---
No client certificate CA names sent
---
SSL handshake has read 2101 bytes and written 135 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: zlib compression
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
2F8F6504A661AAE565690DD564D7B5F7DC7797F7293A948B5414388538D94E055F8A4347D13CBB5CC04C9FCF830FFB83
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Compression: 1 (zlib compression)
    Start Time: 1426980074
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---

# pkg query "%Ok %Ov" openssl
ASM on
DOCS on
EC on
GMP off
I386 off
MD2 on
PADLOCK off
RC5 off
RFC3779 off
SCTP on
SHARED on
SSE2 on
SSL2 on
SSL3 on
THREADS on
ZLIB on

# uname -a
FreeBSD freebsd101.porcupine.org 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: 
Tue Nov 11 21:02:49 UTC 2014     
r...@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

# ldd /usr/libexec/postfix/smtpd
/usr/libexec/postfix/smtpd:
        libpostfix-master.so => /usr/lib/postfix/libpostfix-master.so 
(0x80084c000)
        libpostfix-tls.so => /usr/lib/postfix/libpostfix-tls.so (0x800a55000)
        libpostfix-dns.so => /usr/lib/postfix/libpostfix-dns.so (0x800c6d000)
        libpostfix-global.so => /usr/lib/postfix/libpostfix-global.so 
(0x800e73000)
        libpostfix-util.so => /usr/lib/postfix/libpostfix-util.so (0x8010bd000)
        libssl.so.8 => /usr/local/lib/libssl.so.8 (0x8012ff000)
        libcrypto.so.8 => /usr/local/lib/libcrypto.so.8 (0x801567000)
        libsasl2.so.3 => /usr/local/lib/libsasl2.so.3 (0x80196b000)
        libcdb.so.1 => /usr/local/lib/libcdb.so.1 (0x801b86000)
        libldap-2.4.so.2 => /usr/local/lib/libldap-2.4.so.2 (0x801d89000)
        liblber-2.4.so.2 => /usr/local/lib/liblber-2.4.so.2 (0x801fcf000)
        liblmdb.so => /usr/local/lib/liblmdb.so (0x8021dd000)
        libmysqlclient.so.18 => /usr/local/lib/mysql/libmysqlclient.so.18 
(0x8023f0000)
        libz.so.6 => /lib/libz.so.6 (0x8029cd000)
        libm.so.5 => /lib/libm.so.5 (0x802be3000)
        libpq.so.5 => /usr/local/lib/libpq.so.5 (0x802e0b000)
        libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0 (0x803039000)
        libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x803339000)
        libicuuc.so.53 => /usr/local/lib/libicuuc.so.53 (0x8035ab000)
        libc.so.7 => /lib/libc.so.7 (0x803939000)
        libthr.so.3 => /lib/libthr.so.3 (0x803ce2000)
        libssl.so.7 => /usr/lib/libssl.so.7 (0x803f07000)
        libcrypto.so.7 => /lib/libcrypto.so.7 (0x804172000)
        libc++.so.1 => /usr/lib/libc++.so.1 (0x804565000)
        libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x804825000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x804a41000)
        libintl.so.9 => /usr/local/lib/libintl.so.9 (0x804c4f000)
        libicudata.so.53 => /usr/local/lib/libicudata.so.53 (0x804e59000)

# cat /etc/postfix/makedefs.out
# Do not edit -- this file documents how Postfix was built for your machine.
#----------------------------------------------------------------
# Start of summary of user-configurable 'make makefiles' options.
# CCARGS=-DUSE_TLS -I/usr/local/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL 
-I/usr/local/include/sasl -DHAS_MEMCACHE -DHAS_CDB -I/usr/local/include 
-DHAS_LDAP -DHAS_LMDB -DHAS_MYSQL -I/usr/local/include/mysql -DHAS_PGSQL 
-I/usr/local/include/pgsql -DHAS_SQLITE
# AUXLIBS=-L/usr/local/lib -lssl -lcrypto -L/usr/local/lib -lsasl2 
-L/usr/local/lib -lcdb -L/usr/local/lib -lldap  -L/usr/local/lib -llber 
-L/usr/local/lib -llmdb -L/usr/local/lib/mysql -lmysqlclient -lz -lm 
-L/usr/local/lib -lpq -L/usr/local/lib -lsqlite3
# AUXLIBS_CDB=-L/usr/local/lib -lcdb
# AUXLIBS_LDAP=-L/usr/local/lib -lldap  -L/usr/local/lib -llber
# AUXLIBS_PGSQL=-L/usr/local/lib -lpq
# AUXLIBS_SQLITE=-L/usr/local/lib -lsqlite3
# AUXLIBS_LMDB=-L/usr/local/lib -llmdb
# AUXLIBS_MYSQL=-L/usr/local/lib/mysql -lmysqlclient -lz -lm
# shared=yes
# dynamicmaps=
# pie=
# End of summary of user-configurable 'make makefiles' options.
#--------------------------------------------------------------
# System-dependent settings and compiler/linker overrides.
[remainder of output omitted for brevity]

Reply via email to