diff --git a/lib/krb5/sock_principal.c b/lib/krb5/sock_principal.c index b7994dba6..2c9b5dc8a 100644 --- a/lib/krb5/sock_principal.c +++ b/lib/krb5/sock_principal.c @@ -82,9 +82,16 @@ krb5_sock_to_principal (krb5_context context, } } - return krb5_sname_to_principal (context, - hname, - sname, - type, - ret_princ); + hname = strdup(hname); + if (hname == NULL) { + krb5_set_error_string (context, "malloc: out of memory"); + return ENOMEM; + } + ret = krb5_sname_to_principal (context, + hname, + sname, + type, + ret_princ); + free(hname); + return ret; }