Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 178964

Summary: app-crypt/mit-krb5-1.5.2-r2 segfaults (sample code + /etc/krb5.conf)
Product: Gentoo Linux Reporter: Alexandre Bique <bique.alexandre>
Component: [OLD] LibraryAssignee: Gentoo Kerberos Maintainers <kerberos>
Status: VERIFIED WONTFIX    
Severity: critical CC: bique.alexandre
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Alexandre Bique 2007-05-18 07:13:59 UTC
/etc/krb5.conf:
[libdefaults]
        default_realm = EPITECH.NET
        forwardable = true

[realms]
        EPITECH.NET = {
                kdc = kdc.epitech.net afs.epitech.net
                admin_server = kdc.epitech.net
                kpasswd_server = kdc.epitech.net
        }

[logging]
        default = FILE:/tmp/deflog
        kdc = FILE:/tmp/kdclog

[kadmin]
        default_keys = des3:pw-salt


test.c:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <gssapi/gssapi.h>

#define SERVICE_NAME "host@ns-server.epitech.net"

void
display_status(OM_uint32	min,
	       OM_uint32	maj)
{
  gss_OID		mech;
  OM_uint32		minor;
  OM_uint32		status;
  gss_buffer_desc	msg;

  gss_display_status(&minor, min, GSS_C_GSS_CODE, GSS_C_NO_OID, &status, &msg);
  puts(msg.value);
  gss_display_status(&minor, min, GSS_C_MECH_CODE, GSS_C_NO_OID, &status, &msg);
  puts(msg.value);
  exit(5);
}

void
import_name(gss_name_t*	gss_name)
{
  OM_uint32		min;
  OM_uint32		maj;
  gss_buffer_desc	buf;
  gss_OID		mech = (gss_OID)GSS_C_NT_HOSTBASED_SERVICE;

  buf.value = (unsigned char *) strdup(SERVICE_NAME);
  buf.length = strlen(buf.value) + 1;
  maj = gss_import_name(&min, &buf, mech, gss_name);
  if (maj != GSS_S_COMPLETE)
    display_status(min, maj);
}

unsigned char *
init_context(gss_name_t	gss_name)
{
  OM_uint32		min;
  OM_uint32		maj;
  OM_uint32		flags;
  OM_uint32		time_rec;
  gss_ctx_id_t		ctx;
  gss_name_t		name;
  gss_OID		mech_type;
  gss_buffer_t		itoken = GSS_C_NO_BUFFER;
  gss_buffer_desc	otoken;

  maj = gss_init_sec_context(&min, GSS_C_NO_CREDENTIAL, &ctx, gss_name,
			     GSS_C_NO_OID, 0, 0,
			     GSS_C_NO_CHANNEL_BINDINGS, itoken,
			     NULL, &otoken, NULL, NULL);
  if (maj != GSS_S_COMPLETE)
    display_status(min, maj);
  gss_delete_sec_context(&min, &ctx, &otoken);
}

int
main(int	argc,
     char**	argv)
{
  gss_name_t	gss_name;

  import_name(&gss_name);
  init_context(gss_name);
  return (0);
}


Now let's do
gcc -g `pkg-config --cflags --libs libgssapi` test.c -o test; ./test

I got:
Program received signal SIGSEGV, Segmentation fault.
0xb7f0904f in gss_init_sec_context () from /usr/lib/libgssapi_krb5.so
(gdb) bt
#0  0xb7f0904f in gss_init_sec_context () from /usr/lib/libgssapi_krb5.so
#1  0xbffef8fc in ?? ()
#2  0xb7f308c0 in ?? () from /usr/lib/libgssapi.so.2
#3  0x0804bcc8 in ?? ()
#4  0xbffef834 in ?? ()
#5  0x4f2c06c8 in _r_debug ()
#6  0x08048390 in ?? ()
#7  0x0100000a in ?? ()
#8  0x50c6ee23 in ?? ()
#9  0x00000000 in ?? ()
(gdb) quit


Reproducible: Always

Steps to Reproduce:




paludis --info
paludis 0.24.2

Built by paludisbuild@Vortex on 2007-05-13T10:08:45+0200
CXX:         i686-pc-linux-gnu-g++ 4.1.2 20070214 (  (gdc 0.23, using dmd 1.007)) (Gentoo 4.1.2)
CXXFLAGS:    -O2 -pipe -march=athlon-xp -fomit-frame-pointer -fPIC
LDFLAGS:
DATADIR:     /usr/share
LIBDIR:      /usr/lib
LIBEXECDIR:  /usr/libexec
SYSCONFDIR:  /etc
stdlib:      GNU libstdc++ 20070214
libebt:      1.3.0
libwrapiter: 1.0.0
sandbox:     enabled

Repository virtuals:
    Configuration information:
        format:                virtuals

Repository installed_virtuals:
    Configuration information:
        format:                installed_virtuals

Repository gentoo:
    Configuration information:
        buildroot:             /var/tmp/paludis
        cache:                 /usr/portage/metadata/cache
        distdir:               /usr/portage/distfiles
        eclassdirs:            /usr/portage/eclass
        format:                ebuild
        location:              /usr/portage
        names_cache:           /usr/portage/.cache/names
        newsdir:               /usr/portage/metadata/news
        pkgdir:                /usr/portage/packages
        profiles:              /usr/portage/profiles/default-linux/x86/2006.1/desktop
        securitydir:           /usr/portage/metadata/glsa
        setsdir:               /usr/portage/sets
        sync:                  rsync://rsync.europe.gentoo.org/gentoo-portage
        sync_options:
        write_cache:           /var/cache/paludis/metadata

    Package information:
        app-admin/eselect-compiler: (none)
        dev-java/java-config:  1.3.7, 2.0.32
        dev-lang/python:       2.4.4-r4
        dev-python/pycrypto:   2.0.1-r5
        dev-util/ccache:       2.4-r7
        dev-util/confcache:    (none)
        sys-apps/sandbox:      1.2.18.1
        sys-devel/autoconf:    2.13, 2.61
        sys-devel/automake:    1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
        sys-devel/binutils:    2.17
        sys-devel/gcc-config:  1.3.16
        sys-devel/libtool:     1.5.23b
        virtual/os-headers:    2.6.21

    Variable information:
        ACCEPT_KEYWORDS:
        AUTOCLEAN:
        CBUILD:                i686-pc-linux-gnu
        CFLAGS:                -O2 -pipe -march=athlon-xp -fomit-frame-pointer -fPIC
        CHOST:                 i686-pc-linux-gnu
        CONFIG_PROTECT:
        CONFIG_PROTECT_MASK:
        CTARGET:
        CXXFLAGS:              -O2 -pipe -march=athlon-xp -fomit-frame-pointer -fPIC
        DISTDIR:               /usr/portage/distfiles
        FEATURES:
        GENTOO_MIRRORS:
        INSTALL_MASK:
        LANG:
        LC_ALL:
        LDFLAGS:
        LINGUAS:
        MAKEOPTS:              -j2
        PKGDIR:
        PORTAGE_COMPRESS:
        PORTAGE_COMPRESS_FLAGS:
        PORTAGE_RSYNC_EXTRA_OPTS:
        PORTAGE_RSYNC_OPTS:
        PORTAGE_TMPDIR:        /var/tmp/paludis
        PORTDIR:               /usr/portage
        PORTDIR_OVERLAY:
        SYNC:
        USE:

Repository installed:
    Configuration information:
        buildroot:             /var/tmp/paludis
        format:                vdb
        location:              /var/db/pkg
        names_cache:           /var/db/pkg/.cache/names
        provides_cache:        /var/db/pkg/.cache/provides
        root:                  /
        world:                 /var/db/pkg/world
Comment 1 Michael Hammer (RETIRED) gentoo-dev 2008-07-11 07:19:57 UTC
AFAIKS this bug has nothing to do with gentoo ... I wan't fix your code ;) If it's library related please contact upstream! (BTW the package is really outdated)