[1620] in Kerberos-V5-bugs
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);