diff options
author | Gerald Carter <jerry@samba.org> | 2007-03-15 22:09:03 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:18:38 -0500 |
commit | 54a114fa7569315a8ad391689ebf5d68ef4a62d4 (patch) | |
tree | 5edf7ce51ab93bf9b0dec8f4e5904faf70ef61ff /source | |
parent | 89bdd30e4b2bb9dbc2ab57c54be8c6d01cae5a26 (diff) | |
download | samba-54a114fa7569315a8ad391689ebf5d68ef4a62d4.tar.gz samba-54a114fa7569315a8ad391689ebf5d68ef4a62d4.tar.xz samba-54a114fa7569315a8ad391689ebf5d68ef4a62d4.zip |
r21848: add a comment about gss_import_name() and when to free the krb5 principal data
Diffstat (limited to 'source')
-rw-r--r-- | source/libaddns/dnsgss.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/libaddns/dnsgss.c b/source/libaddns/dnsgss.c index 798fd4404ee..207e86c3edf 100644 --- a/source/libaddns/dnsgss.c +++ b/source/libaddns/dnsgss.c @@ -252,6 +252,11 @@ DNS_ERROR dns_negotiate_sec_ctx( const char *target_realm, krb5_init_context( &krb_ctx ); krb5_parse_name( krb_ctx, targetname, &host_principal ); + /* don't free the printcap until after you call + gss_release_name() or else you'll get a segv + as the krb5_copy_principal() does a structure + copy and not a deep copy. --jerry*/ + input_name.value = &host_principal; input_name.length = sizeof( host_principal ); @@ -267,8 +272,11 @@ DNS_ERROR dns_negotiate_sec_ctx( const char *target_realm, err = dns_negotiate_gss_ctx_int(mem_ctx, conn, keyname, targ_name, gss_ctx, srv_type ); - + gss_release_name( &minor, &targ_name ); + + /* now we can feree the principal */ + krb5_free_principal( krb_ctx, host_principal ); krb5_free_context( krb_ctx ); |