I am trying to compile GSSAPI PERL module with kerberos and I'm getting a core dump while testing it. Here are the details:
GSSAPI version: 0.28
KERBEROS: 1.14
PERL: 5.22
OS: SunOS kangaroo 5.11 11.2 sun4v sparc sun4v
While running the tests for GSSAPI, I get a core dump
sv_app@kangaroo:…rc/trunk/perl-5.22/GSSAPI-0.28$ make test
PERL_DL_NONLAZY=1 "/u01/sv/app/10.00/perl/product/perl-5.22.0/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1constants.t ..... ok
t/2status.t ........ ok
t/checkoids.t ...... ok
t/importnames.t .... ok
t/indicatemechs.t .. 1/5 # KRB5 old Mechtype, Kerberos 5, SPNEGO
t/indicatemechs.t .. ok
t/inquire_cred.t ... Failed 6/6 subtests
t/pod.t ............ skipped: Test::Pod 1.00 required for testing POD
t/test.t ........... ok
t/zbugfixes.t ...... 1/3 #
Stack Trace from core dump:
t@1 (l@1) program terminated by signal BUS (invalid address alignment)
0x0007fffefcbec2d0: get_value_vt+0x0010: ldx [%i3 + 8], %i1
(dbx) where
current thread: t@1
=>[1] get_value_vt(0x1006b9ca0, 0xffffffff7fffe7d0, 0xffffffff7fffe7c8, 0x11, 0x0, 0x0), at 0x7fffefcbec2d0
[2] profile_get_string(0x1006b9ca0, 0x7fffefcbf9ab0, 0x7fffefcbf9b08, 0x0, 0x0, 0xffffffff7fffe8a8), at 0x7fffefcbec420
[3] k5_kt_client_default_name(0x1003746b0, 0xffffffff7fffe968, 0x0, 0x0, 0xffffffffffed59e8, 0x12a400), at 0x7fffefcbd50b0
[4] krb5_kt_client_default(0x1003746b0, 0x1005734a0, 0xffffffff7fffeafc, 0x0, 0xffffffff7fffef8c, 0x0), at 0x7fffefcb63678
[5] acquire_init_cred(0x1003746b0, 0xffffffff7fffef8c, 0x0, 0x0, 0x0, 0x100573450), at 0x7fffefd53c878
[6] acquire_cred_context(0x1003746b0, 0xffffffff7fffef8c, 0x0, 0x0, 0x100573450, 0x1), at 0x7fffefd53cc04
[7] krb5_gss_acquire_cred_from(0x0, 0x0, 0x78, 0x0, 0x1, 0x0), at 0x7fffefd53d880
[8] gss_add_cred_from(0xffffffff7fffef8c, 0x100362470, 0x78, 0x100362410, 0x100362470, 0x0), at 0x7fffefd51d61c
[9] gss_acquire_cred_from(0xffffffff7ffff188, 0x0, 0x1, 0x0, 0xffffffff7fffefd0, 0x0), at 0x7fffefd51cf50
[10] gss_acquire_cred(0xffffffff7ffff188, 0x0, 0x78, 0x0, 0x1, 0xffffffff7ffff198), at 0x7fffefd51cb84
[11] XS_GSSAPI__Cred_acquire_cred(0x28, 0x0, 0x0, 0x38, 0x30, 0x8), at 0x7fffefd808a08
[12] Perl_pp_entersub(0x38, 0x2, 0x20000, 0x1004b3310, 0x100000, 0x7), at 0x100116408
[13] Perl_runops_standard(0x100169260, 0x1006ca470, 0x1006ca470, 0x10034c000, 0x10034c, 0x10034c5e0), at 0x100109c04
[14] S_run_body(0x100000, 0x10034c, 0x10034c, 0x0, 0x0, 0x10034d460), at 0x100054fc0
[15] perl_run(0x10034d, 0xffffffff7ffff488, 0x100000, 0x1, 0x0, 0x10034b000), at 0x100054c20
[16] main(0x2, 0xffffffff7ffff6c8, 0x10034b, 0x10034d000, 0x10034b, 0x10034bb80), at 0x1000261f0
(dbx) frame 1
0x0007fffefcbec2d0: get_value_vt+0x0010: ldx [%i3 + 8], %i1
(dbx) regs
current thread: t@1
current frame: [1]
g0-g1 0x0000000000000000 0x0000000000000000
g2-g3 0x0000000000000000 0x0000000000000000
g4-g5 0x000000000000004b 0x0007fffefcbf9af5
g6-g7 0x0000000000000000 0x0007fffefea02a40
o0-o1 0x0000000000000000 0xffffffff7fffe7d0
o2-o3 0xffffffff7fffe708 0x0000000000000000
o4-o5 0x0000000000000000 0x0000000000000000
o6-o7 0xffffffff7fffde51 0x0007fffefcbec368
l0-l1 0x0000000000000000 0x0000000000000000
l2-l3 0x0000000000000000 0x0000000000000000
l4-l5 0x0000000000000000 0x0000000000000000
l6-l7 0x0000000000000000 0x0000000000000011
i0-i1 0x00000001006b9ca0 0xffffffff7fffe7d0
i2-i3 0xffffffff7fffe7c8 0x0000000000000011
i4-i5 0x0000000000000000 0x0000000000000000
i6-i7 0xffffffff7fffdf11 0x0007fffefcbec420
y 0x0000000000000000
ccr 0x0000000000000000
pc 0x0007fffefcbec2d0:get_value_vt+0x10 ldx [%i3 + 8], %i1
npc 0x0007fffefcbec2d4:get_value_vt+0x14 call %i1
(dbx) examine 0xffffffff7fffe7d0/i
0xffffffff7fffe7d0: illtrap 0x7fffe
krb5-1.14/src/util/profile/prof_get.c
/* Look up a relation in a vtable profile and return the first value in the
* result. */
static errcode_t
get_value_vt(profile_t profile, const char *const *names, char **ret_value)
{
errcode_t retval;
char **vtvalues;
retval = profile->vt->get_values(profile->cbdata, names, &vtvalues);
if (retval)
return retval;
*ret_value = strdup(*vtvalues);
if (*ret_value == NULL)
retval = ENOMEM;
profile->vt->free_values(profile->cbdata, vtvalues);
return retval;
}