[LON-CAPA-cvs] cvs: loncom / lond

raeburn lon-capa-cvs@mail.lon-capa.org
Sun, 28 Jan 2007 18:49:51 -0000


raeburn		Sun Jan 28 13:49:51 2007 EDT

  Modified files:              
    /loncom	lond 
  Log:
  In cases where FC6 is run with Authen::Krb5 1.5 or earlier, prevent the call to init_ets(). (This is deprecated in Krb5.pm rev 1.6, so distro detection will not be required for future distros).
  
  $credentials->initialize() was causing a segmentation fault for krb5 on 64 bit machines, when passing a previously defined object. Not sure why, but creating the object in situ eliminates the segfault.
  
  
Index: loncom/lond
diff -u loncom/lond:1.358 loncom/lond:1.359
--- loncom/lond:1.358	Thu Jan 18 22:09:07 2007
+++ loncom/lond	Sun Jan 28 13:49:49 2007
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.358 2007/01/19 03:09:07 albertel Exp $
+# $Id: lond,v 1.359 2007/01/28 18:49:49 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -59,7 +59,7 @@
 my $status='';
 my $lastlog='';
 
-my $VERSION='$Revision: 1.358 $'; #' stupid emacs
+my $VERSION='$Revision: 1.359 $'; #' stupid emacs
 my $remoteVERSION;
 my $currenthostid="default";
 my $currentdomainid;
@@ -5466,8 +5466,8 @@
 #        my $tmpsnum=0;            # Now global
 #---------------------------------------------------- kerberos 5 initialization
         &Authen::Krb5::init_context();
-	unless (($dist eq 'fedora5') || ($dist eq 'fedora4') 
-		|| ($dist eq 'suse9.3')) {
+	unless (($dist eq 'fedora5') || ($dist eq 'fedora4') ||  
+		($dist eq 'fedora6') || ($dist eq 'suse9.3')) {
 	    &Authen::Krb5::init_ets();
 	}
 
@@ -5880,7 +5880,8 @@
 		my $krbservice = "krbtgt/".$contentpwd."\@".$contentpwd;
 		my $krbserver  = &Authen::Krb5::parse_name($krbservice);
 		my $credentials= &Authen::Krb5::cc_default();
-		$credentials->initialize($krbclient);
+		$credentials->initialize(&Authen::Krb5::parse_name($user.'@'
+                                                                 .$contentpwd));
 		my $krbreturn  = &Authen::Krb5::get_in_tkt_with_password($krbclient,
 									 $krbserver,
 									 $password,