summaryrefslogtreecommitdiff
path: root/server/kstuff.c
diff options
context:
space:
mode:
authorGravatar Richard Basch <probe@mit.edu>1993-11-21 10:04:57 +0000
committerGravatar Richard Basch <probe@mit.edu>1993-11-21 10:04:57 +0000
commit75b06489dcd8243b3bdb4b113d22761623b02419 (patch)
treefba662f12d031da83e9a1ae848c8f1be88a82487 /server/kstuff.c
parentf8d09dfb0de4163e34a1a3b56a137282e53a1f07 (diff)
GetKerberosData was trying to pass a struct instead of a ulong, as
was expected by krb_rd_req() [metcalf@lcs]
Diffstat (limited to 'server/kstuff.c')
-rw-r--r--server/kstuff.c87
1 files changed, 44 insertions, 43 deletions
diff --git a/server/kstuff.c b/server/kstuff.c
index 20c5a55..49089de 100644
--- a/server/kstuff.c
+++ b/server/kstuff.c
@@ -63,44 +63,45 @@ GetKerberosData(fd, haddr, kdata, service, srvtab)
char *service; /* service principal desired */
char *srvtab; /* file to get keys from */
{
- char p[20];
- KTEXT_ST ticket; /* will get Kerberos ticket from client */
- int i;
- char instance[INST_SZ];
-
- /*
- * Get the Kerberos ticket. The first few characters, terminated
- * by a blank, should give us a length; then get than many chars
- * which will be the ticket proper.
- */
- for (i=0; i<20; i++) {
- if (read(fd, &p[i], 1) != 1) {
- syslog(LOG_WARNING,"bad read tkt len");
- return(KFAILURE);
- }
- if (p[i] == ' ') {
- p[i] = '\0';
- break;
- }
- }
- ticket.length = atoi(p);
- if ((i==20) || (ticket.length<=0) || (ticket.length>MAX_KTXT_LEN)) {
- syslog(LOG_WARNING,"bad tkt len %d",ticket.length);
+ char p[20];
+ KTEXT_ST ticket; /* will get Kerberos ticket from client */
+ int i;
+ char instance[INST_SZ];
+
+ /*
+ * Get the Kerberos ticket. The first few characters, terminated
+ * by a blank, should give us a length; then get than many chars
+ * which will be the ticket proper.
+ */
+ for (i=0; i<20; i++) {
+ if (read(fd, &p[i], 1) != 1) {
+ syslog(LOG_WARNING,"bad read tkt len");
return(KFAILURE);
}
- for (i=0; i<ticket.length; i++) {
- if (read(fd, (caddr_t) &(ticket.dat[i]), 1) != 1) {
- syslog(LOG_WARNING,"bad tkt read");
- return(KFAILURE);
- }
+ if (p[i] == ' ') {
+ p[i] = '\0';
+ break;
}
- /*
- * now have the ticket. use it to get the authenticated
- * data from Kerberos.
- */
- (void) strcpy(instance,"*"); /* let Kerberos fill it in */
-
- return(krb_rd_req(&ticket,service,instance,haddr,kdata, srvtab ? srvtab : ""));
+ }
+ ticket.length = atoi(p);
+ if ((i==20) || (ticket.length<=0) || (ticket.length>MAX_KTXT_LEN)) {
+ syslog(LOG_WARNING,"bad tkt len %d",ticket.length);
+ return(KFAILURE);
+ }
+ for (i=0; i<ticket.length; i++) {
+ if (read(fd, (caddr_t) &(ticket.dat[i]), 1) != 1) {
+ syslog(LOG_WARNING,"bad tkt read");
+ return(KFAILURE);
+ }
+ }
+ /*
+ * now have the ticket. use it to get the authenticated
+ * data from Kerberos.
+ */
+ (void) strcpy(instance,"*"); /* let Kerberos fill it in */
+
+ return(krb_rd_req(&ticket, service, instance, haddr.s_addr,
+ kdata, srvtab ? srvtab : ""));
}
/*
@@ -168,14 +169,14 @@ static void
ae_expire(ae)
struct AuthEnt *ae;
{
- if (ae->data) {
- xfree((void *) ae->data);
- ae->data = 0;
- }
- ae->len = 0;
- ae->expire_time = 0;
- free_zstring(ae->principal);
- ae->principal= 0;
+ if (ae->data) {
+ xfree((void *) ae->data);
+ ae->data = 0;
+ }
+ ae->len = 0;
+ ae->expire_time = 0;
+ free_zstring(ae->principal);
+ ae->principal= 0;
}
static int