if ((field) && strcmp (field, strings)) return KABADPROTOCOL;\
strings += len+1
+#define chknostr() \
+ len = strlen(strings); \
+ if (len > MAXKTCNAMELEN) return KABADPROTOCOL; \
+ strings += len+1
+
if (caller) {
chkstr(caller->name);
chkstr(caller->instance);
chkstr(caller->cell);
} else {
- chkstr(0);
- chkstr(0);
- chkstr(0);
+ chknostr();
+ chknostr();
+ chknostr();
}
if (server) {
chkstr(server->name);
chkstr(server->instance);
} else {
- chkstr(0);
- chkstr(0);
+ chknostr();
+ chknostr();
}
if (oanswer->SeqLen -
ubik_Call(KAA_Authenticate, conn, 0, name, instance, start, end,
&arequest, &oanswer, 0, 0);
if (code == RXGEN_OPCODE) {
- extern int KAA_Authenticate_old();
oanswer.MaxSeqLen = sizeof(answer_old);
oanswer.SeqBody = (char *)&answer_old;
version = 0;
ubik_Call(KAT_GetTicket, conn, 0, auth_token->kvno, auth_domain,
&aticket, name, instance, &atimes, &oanswer);
if (code == RXGEN_OPCODE) {
- extern int KAT_GetTicket_old();
oanswer.SeqLen = 0; /* this may be set by first call */
oanswer.MaxSeqLen = sizeof(answer_old);
oanswer.SeqBody = (char *)&answer_old;