Segfault in OpenSSL even though GnuTLS demanded

Bertram Scharpf lists at bertram-scharpf.de
Fri Jul 29 10:15:14 UTC 2016


On Thursday, 28. Jul 2016, 17:56:46 -0400, Jung-uk Kim wrote:
> On 07/28/16 05:37 PM, Bertram Scharpf wrote:
> > On Thursday, 28. Jul 2016, 17:25:50 -0400, Jung-uk Kim wrote:
> >> On 07/28/16 04:55 PM, Bertram Scharpf wrote:
> >>> On Thursday, 28. Jul 2016, 15:37:00 -0400, Jung-uk Kim wrote:
> >>>> On 07/28/16 02:02 PM, Bertram Scharpf wrote:
> >>>>>
> >>>>>   Program received signal SIGSEGV, Segmentation fault.
> >>>>>   [Switching to Thread 29403080 (LWP 101275/mcabber)]
> >>>>>   0x285c1245 in OPENSSL_ia32_cpuid () from /usr/local/lib/libcrypto.so.8
> >>>>
> >>>> Try "ldd /usr/local/lib/libloudmouth-1.so.0.1.0".  It looks like a
> >>>> Kerberos issue.
> >>>
> >>> No errors. They do all exist. I double-checked it:
> >>>
> >>>   $ ldd /usr/local/lib/libloudmouth-1.so.0.1.0 | perl -lne '/=>\s*(\S+)/ and not -e $1 and print $1'
> >>
> >> I guess you misunderstood.  I didn't mean you have a missing library.  I
> >> believe it links *two* libcrypto.so's, i.e., one from base and one from
> >> ports.
> > 
> > Indeed:
> > 
> >   # ldd /usr/local/lib/libloudmouth-1.so.0.1.0 | grep libcrypto
> >         libcrypto.so.8 => /usr/local/lib/libcrypto.so.8 (0x28d00000)
> >         libcrypto.so.7 => /lib/libcrypto.so.7 (0x2925b000)
> > 
> > So, how could I resolve this?
> You may ask its maintainer (gnome at FreeBSD.org) to add USES+=gssapi and
> add an option to select GSS-API from ports.  Another solution may be
> removing all packages depending on /usr/local/lib/libcrypto.8 and
> rebuilding them with base OpenSSL.

I cannot remove _all_ packages that depend on OpenSSL.

  # pkg info -qr openssl-1.0.2_14 | wc -l
	38


The first thing I do not understand is why it is so
important for so many packages to pull in the package.

  # openssl version
  OpenSSL 1.0.1t-freebsd  3 May 2016
  # /usr/local/bin/openssl version
  WARNING: can't open config file: /usr/local/openssl/openssl.cnf
  OpenSSL 1.0.2h  3 May 2016


The second thing I do not understand is why GSS-API should
help. I searched for USES+=gssapi and did find only four
projects that really have it. None of them is installed
here.

  $ rbfind /usr/ports 'prune if name == "work" ; name == "Makefile" and grep /\bUSES.*gssapi/'

Many ports have GSSAPI disabled here and they do not
segfault because of an OpenSSL conflict. Example:

  # grep -h 'SET.*GSS' /var/db/ports/databases_postgresql95-*/options
  OPTIONS_FILE_UNSET+=GSSAPI
  OPTIONS_FILE_UNSET+=GSSAPI


The third thing I do not understand is why there is an
OpenSSL conflict at all. I definitely told loudmouth to use
GnuTLS.

  # grep SSL\\\|TLS /var/db/ports/net-im_loudmouth/options
  _FILE_COMPLETE_OPTIONS_LIST=DOCS GNUTLS OPENSSL
  OPTIONS_FILE_SET+=GNUTLS
  OPTIONS_FILE_UNSET+=OPENSSL

  # cd net-im/loudmouth
  # make run-depends-list build-depends-list | grep ssl\\\|tls
  /usr/ports/security/gnutls
  /usr/ports/security/gnutls


This appears to be a real port bug to me.

Bertram


-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de


More information about the freebsd-hackers mailing list