aboutsummaryrefslogtreecommitdiff
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.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/kadm5/clnt/client_init.c b/src/lib/kadm5/clnt/client_init.c
index a3d2613..b3832bb 100644
--- a/src/lib/kadm5/clnt/client_init.c
+++ b/src/lib/kadm5/clnt/client_init.c
@@ -134,6 +134,8 @@ static int preauth_search_list[] = {
};
static krb5_enctype enctypes[] = {
+ ENCTYPE_DES3_CBC_SHA1,
+ ENCTYPE_DES_CBC_MD5,
ENCTYPE_DES_CBC_CRC,
0,
};
@@ -282,9 +284,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,