svn commit: samba r19977 - in branches: SAMBA_3_0/source/libaddns
SAMBA_3_0_24/source/libaddns
jerry at samba.org
jerry at samba.org
Fri Dec 1 14:18:35 GMT 2006
Author: jerry
Date: 2006-12-01 14:18:35 +0000 (Fri, 01 Dec 2006)
New Revision: 19977
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19977
Log:
* Fix a crash in the secure DNS update code. Don't free
the host_principal memory while it is still being referenced
by the gss code.
Modified:
branches/SAMBA_3_0/source/libaddns/dnsgss.c
branches/SAMBA_3_0_24/source/libaddns/dnsgss.c
Changeset:
Modified: branches/SAMBA_3_0/source/libaddns/dnsgss.c
===================================================================
--- branches/SAMBA_3_0/source/libaddns/dnsgss.c 2006-12-01 09:09:11 UTC (rev 19976)
+++ branches/SAMBA_3_0/source/libaddns/dnsgss.c 2006-12-01 14:18:35 UTC (rev 19977)
@@ -243,10 +243,9 @@
major = gss_import_name( &minor, &input_name,
&nt_host_oid_desc, &targ_name );
- krb5_free_principal( krb_ctx, host_principal );
- krb5_free_context( krb_ctx );
-
if (major) {
+ krb5_free_principal( krb_ctx, host_principal );
+ krb5_free_context( krb_ctx );
err = ERROR_DNS_GSS_ERROR;
goto error;
}
@@ -254,6 +253,8 @@
err = dns_negotiate_gss_ctx_int(mem_ctx, conn, keyname, targ_name,
gss_ctx);
+ krb5_free_principal( krb_ctx, host_principal );
+ krb5_free_context( krb_ctx );
gss_release_name( &minor, &targ_name );
error:
Modified: branches/SAMBA_3_0_24/source/libaddns/dnsgss.c
===================================================================
--- branches/SAMBA_3_0_24/source/libaddns/dnsgss.c 2006-12-01 09:09:11 UTC (rev 19976)
+++ branches/SAMBA_3_0_24/source/libaddns/dnsgss.c 2006-12-01 14:18:35 UTC (rev 19977)
@@ -243,10 +243,9 @@
major = gss_import_name( &minor, &input_name,
&nt_host_oid_desc, &targ_name );
- krb5_free_principal( krb_ctx, host_principal );
- krb5_free_context( krb_ctx );
-
if (major) {
+ krb5_free_principal( krb_ctx, host_principal );
+ krb5_free_context( krb_ctx );
err = ERROR_DNS_GSS_ERROR;
goto error;
}
@@ -254,6 +253,8 @@
err = dns_negotiate_gss_ctx_int(mem_ctx, conn, keyname, targ_name,
gss_ctx);
+ krb5_free_principal( krb_ctx, host_principal );
+ krb5_free_context( krb_ctx );
gss_release_name( &minor, &targ_name );
error:
More information about the samba-cvs
mailing list