[1620] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

krb5_edit prints bad v4 srvtabs

daemon@ATHENA.MIT.EDU (Derek Atkins)
Thu Sep 7 22:22:59 1995

Date: Thu, 7 Sep 1995 19:23:35 -0700
From: Derek Atkins <warlord@Eng.Sun.COM>
To: krb5-bugs@MIT.EDU

The krb5_edit in the beta 5.5 snapshot prints incorrect v4 srvtabs.
Here is a patch to kdb5_edit.c to fix the problem.  It was outputting
a kvno of 4 bytes, when v4 srvtab only uses a single byte.

-derek


------- kdb5_edit.c -------
*** /tmp/da003n2	Wed Dec 31 16:00:00 1969
--- src/admin/edit/kdb5_edit.c	Thu Sep  7 19:16:27 1995
***************
*** 825,830 ****
--- 825,832 ----
  	return;
      }
      for (i = 2; i < argc; i++) {
+ 	unsigned char kvno;
+ 
  	/* iterate over the names */
  	pname = malloc(strlen(argv[1])+strlen(argv[i])+strlen(cur_realm)+3);
  	if (!pname) {
***************
*** 883,889 ****
  	fwrite(argv[i], strlen(argv[i]) + 1, 1, fout); /* p.name */
  	fwrite(argv[1], strlen(argv[1]) + 1, 1, fout); /* p.instance */
  	fwrite(cur_realm, strlen(cur_realm) + 1, 1, fout); /* p.realm */
! 	fwrite((char *)&dbentry.kvno, sizeof(dbentry.kvno), 1, fout);
  	fwrite((char *)key.contents, 8, 1, fout);
  	printf("'%s' added to V4 srvtab '%s'\n", pname, ktname);
  	memset((char *)key.contents, 0, key.length);
--- 885,892 ----
  	fwrite(argv[i], strlen(argv[i]) + 1, 1, fout); /* p.name */
  	fwrite(argv[1], strlen(argv[1]) + 1, 1, fout); /* p.instance */
  	fwrite(cur_realm, strlen(cur_realm) + 1, 1, fout); /* p.realm */
! 	kvno = (unsigned char) dbentry.kvno;
! 	fwrite((char *)&kvno, sizeof(kvno), 1, fout);
  	fwrite((char *)key.contents, 8, 1, fout);
  	printf("'%s' added to V4 srvtab '%s'\n", pname, ktname);
  	memset((char *)key.contents, 0, key.length);


home help back first fref pref prev next nref lref last post