Bug#830844: Krb5.so fails to load: missing symbol krb5_free_krbhst

Sergio Gelato Sergio.Gelato at astro.su.se
Tue Jul 12 07:48:50 UTC 2016


Package: libauthen-krb5-perl
Version: 1.9-4
Severity: serious

$ env PERL_DL_NONLAZY=1 perl -MAuthen::Krb5 -e '1;'
Can't load '/usr/lib/i386-linux-gnu/perl5/5.20/auto/Authen/Krb5/Krb5.so' for module Authen::Krb5: /usr/lib/i386-linux-gnu/perl5/5.20/auto/Authen/Krb5/Krb5.so: undefined symbol: krb5_free_krbhst at /usr/lib/i386-linux-gnu/perl/5.20/DynaLoader.pm line 187.
 at -e line 0.
Compilation failed in require.
BEGIN failed--compilation aborted.

This breaks test suites or anything else that sets PERL_DL_NONLAZY=1.

The problem is that this module uses an internal MIT Kerberos API that has
been removed. From Krb5.xs:

/*
 * These are internal Kerberos library functions that aren't prototyped and
 * that we probably shouldn't be calling.  Prototype them with the arguments
 * we expect and leave them for now pending an API cleanup.
 */
krb5_error_code krb5_free_krbhst(krb5_context, char * const *);
krb5_error_code krb5_get_krbhst(krb5_context, const krb5_data *, char ***);

And from the changelog (doc/CHANGES) for package krb5:

commit 81fde7e475b02986c1aff88766cc48882004d5dc
Author: Greg Hudson <ghudson at mit.edu>
Date:   Fri Mar 22 16:00:48 2013 -0400

    Get rid of krb5_{get,free}_krbhst

    These functions were always internal.  They haven't been used since
    v5passwdd was eliminated in krb5 1.4.



More information about the pkg-perl-maintainers mailing list