[krbdev.mit.edu #6280] krb5kdc crashed - possible CFSocket race

Zhanna Tsitkova via RT rt-comment at krbdev.mit.edu
Thu Dec 4 13:37:55 EST 2008


diff -Nur -x '*~' -x '*.orig' -x '*.rej' -x '*.pbxbtree' -x '*.pbxindex' -x lha.mode1v3 -x lha.mode2v3 -x lha.pbxuser -x windows -x .DS_Store Kerberos.AEP-6.5fc1.orig/KerberosFramework/Kerberos5/Sources/kdc/announce.c Kerberos.AEP-6.5fc1/KerberosFramework/Kerberos5/Sources/kdc/announce.c
--- Kerberos.AEP-6.5fc1.orig/KerberosFramework/Kerberos5/Sources/kdc/announce.c	2008-11-10 12:59:13.000000000 -0800
+++ Kerberos.AEP-6.5fc1/KerberosFramework/Kerberos5/Sources/kdc/announce.c	2008-11-10 20:36:16.000000000 -0800
@@ -485,17 +485,19 @@
 	g_DNSSource = NULL;
     }
 
-    if (g_dnsRef) {
-	DNSServiceRefDeallocate(g_dnsRef);
-	g_dnsRef = NULL;
-    }
-
     if (g_DNSSource) {
 	CFSocketInvalidate(g_DNSSocket);
+	// work-around for <rdar://problem/3585273>
+	usleep(10000);
 	CFRelease(g_DNSSocket);
 	g_DNSSource = NULL;
     }
 
+    if (g_dnsRef) {
+	DNSServiceRefDeallocate(g_dnsRef);
+	g_dnsRef = NULL;
+    }
+
     delete_all();
 #ifdef REGISTER_SRV_RR
     unregister_srv_realms();




More information about the krb5-bugs mailing list