X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fkerberos.c;h=67d6ad9dd45fe75405e42e9153b7fe034b31c0f4;hb=a720011c8a05d610c737c4e7e299b03506ce810f;hp=7a80877240569e60070733f38758c0fcfa649cc2;hpb=42bb3e2e854600c7dc8e40a5809aebd71cefd564;p=openldap diff --git a/servers/slapd/kerberos.c b/servers/slapd/kerberos.c index 7a80877240..67d6ad9dd4 100644 --- a/servers/slapd/kerberos.c +++ b/servers/slapd/kerberos.c @@ -1,13 +1,22 @@ -/* kerberos.c - ldbm backend kerberos bind routines */ +/* kerberos.c - kerberos bind routines */ /* $OpenLDAP$ */ -/* - * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. - * COPYING RESTRICTIONS APPLY, see COPYRIGHT file +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2006 The OpenLDAP Foundation. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . */ #include "portable.h" -#ifdef HAVE_KERBEROS +#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND #include @@ -16,13 +25,9 @@ #include #include "slap.h" -#include "back-ldbm.h" #define LDAP_KRB_PRINCIPAL "ldapserver" -extern char *ldap_srvtab; -extern Attribute *attr_find(); - krbv4_ldap_auth( Backend *be, struct berval *cred, @@ -36,7 +41,11 @@ krbv4_ldap_auth( Debug( LDAP_DEBUG_TRACE, "=> kerberosv4_ldap_auth\n", 0, 0, 0 ); - SAFEMEMCPY( ktxt->dat, cred->bv_val, cred->bv_len ); + if( cred->len > sizeof(ktxt->dat) ) { + return LDAP_OTHER; + } + + AC_MEMCPY( ktxt->dat, cred->bv_val, cred->bv_len ); ktxt->length = cred->bv_len; strcpy( instance, "*" );