[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cvs and heimdal



On Tue, Jul 27, 1999 at 04:32:22PM +1000, Brian May wrote:
> 0.1j still has the same problem with my password not being accepted.
> I haven't yet had time to investigate properly, so I may have done
> something stupid, but I did install the latest version, killed the old
> kdc, and restarted a new copy of kdc.

0.1l fixes the above problem. I had to reapply this patch though to
get around the problem I previously reported where my tickets have
already expired when I just got them:

Index: heimdal-0.1l/kdc/kerberos5.c
diff -c heimdal-0.1l/kdc/kerberos5.c:1.1.1.2 heimdal-0.1l/kdc/kerberos5.c:1.4
*** heimdal-0.1l/kdc/kerberos5.c:1.1.1.2	Sat Jul 24 18:24:57 1999
--- heimdal-0.1l/kdc/kerberos5.c	Fri Jul 30 13:25:29 1999
***************
*** 690,696 ****
  	t = *b->till;
  	if(client->max_life)
  	    t = min(t, start + *client->max_life);
! 	if(server->max_life)
  	    t = min(t, start + *server->max_life);
  #if 0
  	t = min(t, start + realm->max_life);
--- 690,696 ----
  	t = *b->till;
  	if(client->max_life)
  	    t = min(t, start + *client->max_life);
! 	if(server->max_life && *server->max_life)
  	    t = min(t, start + *server->max_life);
  #if 0
  	t = min(t, start + realm->max_life);
***************
*** 1075,1081 ****
  	life = et.endtime - *et.starttime;
  	if(client && client->max_life)
  	    life = min(life, *client->max_life);
! 	if(server->max_life)
  	    life = min(life, *server->max_life);
  	et.endtime = *et.starttime + life;
      }
--- 1075,1081 ----
  	life = et.endtime - *et.starttime;
  	if(client && client->max_life)
  	    life = min(life, *client->max_life);
! 	if(server->max_life && *server->max_life)
  	    life = min(life, *server->max_life);
  	et.endtime = *et.starttime + life;
      }


Following comments still apply:

> cvs produces the same error, but I didn't expect much since I don't have
> a valid ticket.

Same problem. I tried recompiling CVS just in case that help, but
no difference.

> Some other comments:

0. I got rsh to work.

My /etc/inetd.conf entry is I have hacked together looks like:

kshell stream  tcp nowait root /usr/sbin/tcpd /usr/local/lib/heimdal/libexec/rshd -k -x

[655] [snoopy:bam] ~/cvswork/heimdal/appl/rsh >/usr/local/lib/heimdal/bin/rsh snoopy date
Fri Jul 30 13:59:00 EST 1999
[656] [snoopy:bam] ~/cvswork/heimdal/appl/rsh >/usr/local/lib/heimdal/bin/rsh -x snoopy date
Fri Jul 30 13:59:10 EST 1999
rsh: read: No such file or directory

To me it looks like errno is being used even though an error never
occured, hence its value is undefined. This patch would appear to fix
the problem:

Index: heimdal-0.1l/appl/rsh/common.c
diff -c heimdal-0.1l/appl/rsh/common.c:1.1.1.1 heimdal-0.1l/appl/rsh/common.c:1.2
*** heimdal-0.1l/appl/rsh/common.c:1.1.1.1	Sat Jul 24 17:33:35 1999
--- heimdal-0.1l/appl/rsh/common.c	Fri Jul 30 14:14:45 1999
***************
*** 58,63 ****
--- 58,65 ----
  	    krb5_data data;
  
  	    ret = krb5_net_read (context, &fd, &len, 4);
+ 	    if (ret == 0)
+ 		return 0;
  	    if (ret != 4)
  		return -1;
  	    len = ntohl(len);


(Note: I still am concerned that "file not found" may appear if for
some reason ret!=0 and ret!=4, since errno is only set iff ret<0.
Even if this is never meant to happen, I think the error handling
should be better).

> 1. Since 0.1h running config.status to update the Makefiles (ie this is
> what configure does internally) is extremely slow (ie 15 seconds per
> Makefile). I have no idea why - it seems to be spending a lot of time
> in sed though (which hasn't changed).
> 
> 
> 
> 
> 
> 2. Running "make" has encounters problems when the build directory
> doesn't equal the source directory:
> 
> [523] [snoopy:bam] ~/cvswork/heimdal/build >make
> cd .. && aclocal -I ../cf
> aclocal: couldn't open directory `../cf': No such file or directory
> make: *** [../aclocal.m4] Error 2
> 
> (actually, I would rather if the Makefile didn't try to recreate
> these files - but my use of CVS confuses it, probably by missing up the
> time stamps.)
> 
> The above command line should read:
> 
> cd .. && aclocal -I cf
> 
> as the first cd .. changes to the correct directory.
> 
> This looks like a problem with automake, but I may be wrong.
> 
> 
> 
> 
> 3. Running "make check" has two problems. The first one:
> Making check in editline
> make[2]: Entering directory `/homes/bam/cvswork/heimdal/build/lib/editline'
> make  check-local
> make[3]: Entering directory `/homes/bam/cvswork/heimdal/build/lib/editline'
> 
> I have to push Ctrl+D to get it to continue.  I believe the make file
> is trying to invoke "testit --version" but this operation is not supported.
> 
> 
> 
> 4. Continued from above:
> 
> Making check in krb5
> make[2]: Entering directory `/homes/bam/cvswork/heimdal/build/lib/krb5'
> cd ../../.. && automake --foreign lib/krb5/Makefile
> make  n-fold-test string-to-key-test
> make[3]: Entering directory `/homes/bam/cvswork/heimdal/build/lib/krb5'
> cd ../../.. && automake --foreign lib/krb5/Makefile
> ../../libtool --mode=link gcc  -Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs -g -O2  -o n-fold-test  n-fold-test.o libkrb5.la -lresolv
> gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs -g -O2 -o .libs/n-fold-test n-fold-test.o -Wl,--rpath -Wl,/usr/local/lib/heimdal/lib .libs/libkrb5.so -lresolv -lresolv
> .libs/libkrb5.so: undefined reference to `free_Principal'
> .libs/libkrb5.so: undefined reference to `md5_update'
> .libs/libkrb5.so: undefined reference to `md5_init'
> .libs/libkrb5.so: undefined reference to `copy_Realm'
> .libs/libkrb5.so: undefined reference to `strlwr'
> .libs/libkrb5.so: undefined reference to `des_is_weak_key'
> .libs/libkrb5.so: undefined reference to `decode_TGS_REP'
> .libs/libkrb5.so: undefined reference to `copy_PrincipalName'
> .libs/libkrb5.so: undefined reference to `decode_EncKrbCredPart'
> 
> [...]
> 
> .libs/libkrb5.so: undefined reference to `copy_Ticket'
> .libs/libkrb5.so: undefined reference to `decode_KRB_SAFE'
> .libs/libkrb5.so: undefined reference to `free_KRB_ERROR'
> .libs/libkrb5.so: undefined reference to `strupr'
> .libs/libkrb5.so: undefined reference to `free_EncKrbCredPart'
> .libs/libkrb5.so: undefined reference to `free_AP_REP'
> .libs/libkrb5.so: undefined reference to `encode_KDC_REQ_BODY'
> .libs/libkrb5.so: undefined reference to `sha_init'
> .libs/libkrb5.so: undefined reference to `copy_EncryptedData'
> .libs/libkrb5.so: undefined reference to `decode_ETYPE_INFO'
> .libs/libkrb5.so: undefined reference to `set_progname'
> .libs/libkrb5.so: undefined reference to `parse_time'
> .libs/libkrb5.so: undefined reference to `length_AP_REQ'
> .libs/libkrb5.so: undefined reference to `des_string_to_key'
> .libs/libkrb5.so: undefined reference to `free_EncryptedData'
> .libs/libkrb5.so: undefined reference to `md4_update'
> .libs/libkrb5.so: undefined reference to `decode_EncTicketPart'
> make[3]: *** [n-fold-test] Error 1
> make[3]: Leaving directory `/homes/bam/cvswork/heimdal/build/lib/krb5'
> make[2]: *** [check-am] Error 2
> make[2]: Leaving directory `/homes/bam/cvswork/heimdal/build/lib/krb5'
> make[1]: *** [check-recursive] Error 1
> make[1]: Leaving directory `/homes/bam/cvswork/heimdal/build/lib'
> make: *** [check-recursive] Error 1
> 
> something really broke here.

-- 
Brian May <bam@snoopy.apana.org.au>

PGP signature