summaryrefslogtreecommitdiffstats
path: root/src/lib/kadm5/clnt/client_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/kadm5/clnt/client_init.c')
-rw-r--r--src/lib/kadm5/clnt/client_init.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/lib/kadm5/clnt/client_init.c b/src/lib/kadm5/clnt/client_init.c
index 53d6e15af..56fbfcd72 100644
--- a/src/lib/kadm5/clnt/client_init.c
+++ b/src/lib/kadm5/clnt/client_init.c
@@ -1,7 +1,5 @@
/*
* Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved
- *
- * $Header$
*/
/*
@@ -30,10 +28,6 @@
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-#if !defined(lint) && !defined(__CODECENTER__)
-static char *rcsid = "$Header$";
-#endif
-
#include <stdio.h>
#include <netdb.h>
#ifdef HAVE_MEMORY_H
@@ -136,6 +130,8 @@ static int preauth_search_list[] = {
};
static krb5_enctype enctypes[] = {
+ ENCTYPE_DES3_CBC_SHA1,
+ ENCTYPE_DES_CBC_MD5,
ENCTYPE_DES_CBC_CRC,
0,
};
@@ -284,9 +280,15 @@ static kadm5_ret_t _kadm5_init_any(char *client_name,
goto error;
if (realm) {
+ if(strlen(service_name) + strlen(realm) + 1 >= sizeof(full_service_name)) {
+ goto error;
+ }
sprintf(full_service_name, "%s@%s", service_name, realm);
} else {
/* krb5_princ_realm(creds.client) is not null terminated */
+ if(strlen(service_name) + krb5_princ_realm(handle->context, creds.client)->length + 1 >= sizeof(full_service_name)) {
+ goto error;
+ }
strcpy(full_service_name, service_name);
strcat(full_service_name, "@");
strncat(full_service_name, krb5_princ_realm(handle->context,