aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/krb/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/krb5/krb/parse.c')
-rw-r--r--src/lib/krb5/krb/parse.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/krb5/krb/parse.c b/src/lib/krb5/krb/parse.c
index 50f7b22..cd23d14 100644
--- a/src/lib/krb5/krb/parse.c
+++ b/src/lib/krb5/krb/parse.c
@@ -73,8 +73,8 @@ krb5_parse_name(krb5_context context, const char *name, krb5_principal *nprincip
const char *parsed_realm = NULL;
int fcompsize[FCOMPNUM];
unsigned int realmsize = 0;
- static char *default_realm = NULL;
- static int default_realm_size = 0;
+ char *default_realm = NULL;
+ int default_realm_size = 0;
char *tmpdata;
krb5_principal principal;
krb5_error_code retval;
@@ -211,6 +211,7 @@ krb5_parse_name(krb5_context context, const char *name, krb5_principal *nprincip
if (tmpdata == 0) {
krb5_xfree(principal->data);
krb5_xfree(principal);
+ krb5_xfree(default_realm);
return ENOMEM;
}
krb5_princ_set_realm_length(context, principal, realmsize);
@@ -224,6 +225,7 @@ krb5_parse_name(krb5_context context, const char *name, krb5_principal *nprincip
krb5_xfree(krb5_princ_realm(context, principal)->data);
krb5_xfree(principal->data);
krb5_xfree(principal);
+ krb5_xfree(default_realm);
return(ENOMEM);
}
krb5_princ_component(context, principal, i)->data = tmpdata2;
@@ -276,6 +278,7 @@ krb5_parse_name(krb5_context context, const char *name, krb5_principal *nprincip
principal->magic = KV5M_PRINCIPAL;
principal->realm.magic = KV5M_DATA;
*nprincipal = principal;
+ krb5_xfree(default_realm);
return(0);
}