diff --git a/lib/krb5/transited.c b/lib/krb5/transited.c index a9b34dfc6..8cac643b5 100644 --- a/lib/krb5/transited.c +++ b/lib/krb5/transited.c @@ -368,6 +368,11 @@ krb5_domain_x500_encode(char **realms, int num_realms, krb5_data *encoding) char *s = NULL; int len = 0; int i; + if (num_realms == 0) { + encoding->data = NULL; + encoding->length = 0; + return 0; + } for(i = 0; i < num_realms; i++){ len += strlen(realms[i]); if(realms[i][0] == '/') @@ -375,6 +380,8 @@ krb5_domain_x500_encode(char **realms, int num_realms, krb5_data *encoding) } len += num_realms - 1; s = malloc(len + 1); + if (s == NULL) + return ENOMEM; *s = '\0'; for(i = 0; i < num_realms; i++){ if(i && i < num_realms - 1)