diff options
author | Robert S. French <rfrench@mit.edu> | 1987-06-24 00:19:34 +0000 |
---|---|---|
committer | Robert S. French <rfrench@mit.edu> | 1987-06-24 00:19:34 +0000 |
commit | 16a8eef3e4677dee6d67b1a75bbfcd38ed0682af (patch) | |
tree | cead16171179de23e405d913670645e6221d2cd2 /lib | |
parent | 5996af46d1060bc74bb16c16ed0dc30b15ccfc49 (diff) |
safety
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ZCkIfNot.c | 7 | ||||
-rw-r--r-- | lib/ZIfNotice.c | 8 | ||||
-rw-r--r-- | lib/ZInit.c | 6 | ||||
-rw-r--r-- | lib/ZLocateU.c | 3 | ||||
-rw-r--r-- | lib/ZMakeAscii.c | 4 | ||||
-rw-r--r-- | lib/ZOpenPort.c | 2 | ||||
-rw-r--r-- | lib/ZParseNot.c | 12 | ||||
-rw-r--r-- | lib/ZPeekIfNot.c | 4 | ||||
-rw-r--r-- | lib/ZSendPkt.c | 4 |
9 files changed, 30 insertions, 20 deletions
diff --git a/lib/ZCkIfNot.c b/lib/ZCkIfNot.c index 22119df..3e5f6ad 100644 --- a/lib/ZCkIfNot.c +++ b/lib/ZCkIfNot.c @@ -36,7 +36,8 @@ Code_t ZCheckIfNotice(buffer,buffer_len,notice,auth,predicate,args) for (;qcount;qcount--) { if ((retval = ZParseNotice(qptr->packet,qptr->packet_len, - &tmpnotice,&tmpauth,&qptr->from)) + &tmpnotice,auth?&tmpauth:0, + &qptr->from)) != ZERR_NONE) return (retval); if ((predicate)(&tmpnotice,args)) { @@ -44,10 +45,10 @@ Code_t ZCheckIfNotice(buffer,buffer_len,notice,auth,predicate,args) return (ZERR_PKTLEN); bcopy(qptr->packet,buffer,qptr->packet_len); if ((retval = ZParseNotice(buffer,qptr->packet_len, - notice,auth)) + notice,auth, + &qptr->from)) != ZERR_NONE) return (retval); - *auth = tmpauth; return (Z_RemQueue(qptr)); } qptr = qptr->next; diff --git a/lib/ZIfNotice.c b/lib/ZIfNotice.c index 44815cf..ecdd851 100644 --- a/lib/ZIfNotice.c +++ b/lib/ZIfNotice.c @@ -41,18 +41,18 @@ Code_t ZIfNotice(buffer,buffer_len,notice,auth,predicate,args) for (;;qcount--) { if ((retval = ZParseNotice(qptr->packet,qptr->packet_len, - &tmpnotice,&tmpauth,&qptr->from)) - != ZERR_NONE) + &tmpnotice,auth?&tmpauth:0, + &qptr->from)) != ZERR_NONE) return (retval); if ((predicate)(&tmpnotice,args)) { if (qptr->packet_len > buffer_len) return (ZERR_PKTLEN); bcopy(qptr->packet,buffer,qptr->packet_len); if ((retval = ZParseNotice(buffer,qptr->packet_len, - notice,auth)) + notice,auth, + &qptr->from)) != ZERR_NONE) return (retval); - *auth = tmpauth; return (Z_RemQueue(qptr)); } /* Grunch! */ diff --git a/lib/ZInit.c b/lib/ZInit.c index e0305cd..9657436 100644 --- a/lib/ZInit.c +++ b/lib/ZInit.c @@ -24,7 +24,8 @@ Code_t ZInitialize() char addr[4]; init_zeph_err_tbl(); - + init_krb_err_tbl(); + bzero(&__HM_addr,sizeof(__HM_addr)); __HM_addr.sin_family = AF_INET; @@ -45,5 +46,8 @@ Code_t ZInitialize() __HM_set = 0; + if (get_krbrlm(__Zephyr_realm,1) != KSUCCESS) + strcpy(__Zephyr_realm,"NOREALM"); + return (ZERR_NONE); } diff --git a/lib/ZLocateU.c b/lib/ZLocateU.c index 912d4c2..b1e6e69 100644 --- a/lib/ZLocateU.c +++ b/lib/ZLocateU.c @@ -45,7 +45,8 @@ Code_t ZLocateUser(user,nlocs) return (retval); if ((retval = ZIfNotice(buffer,sizeof buffer,&retnotice,&auth, - locate_pred,¬ice.z_uid)) != ZERR_NONE) + locate_pred,(char *)¬ice.z_uid)) != + ZERR_NONE) return (retval); if (retnotice.z_kind != SERVACK) diff --git a/lib/ZMakeAscii.c b/lib/ZMakeAscii.c index f66e352..2cdcf81 100644 --- a/lib/ZMakeAscii.c +++ b/lib/ZMakeAscii.c @@ -19,7 +19,7 @@ Code_t ZMakeAscii(ptr,len,field,num) char *ptr; int len; - char *field; + unsigned char *field; int num; { int i; @@ -28,7 +28,7 @@ Code_t ZMakeAscii(ptr,len,field,num) if (!(i%4)) { if (len < 3+(i!=0)) return (ZERR_FIELDLEN); - sprintf(*ptr,"%s0x",i?" ":""); + sprintf(ptr,"%s0x",i?" ":""); ptr += 2+(i!=0); len -= 2+(i!=0); } diff --git a/lib/ZOpenPort.c b/lib/ZOpenPort.c index 459b212..46ae4af 100644 --- a/lib/ZOpenPort.c +++ b/lib/ZOpenPort.c @@ -18,7 +18,7 @@ #include <sys/socket.h> Code_t ZOpenPort(port) - int *port; + u_short *port; { int retval; struct sockaddr_in bindin; diff --git a/lib/ZParseNot.c b/lib/ZParseNot.c index 89346f3..3dfd657 100644 --- a/lib/ZParseNot.c +++ b/lib/ZParseNot.c @@ -28,7 +28,6 @@ Code_t ZParseNotice(buffer,len,notice,auth,from) unsigned int temp[3]; AUTH_DAT dat; KTEXT_ST authent; - Key_schedule sess_sched; ZChecksum_t our_checksum; CREDENTIALS cred; @@ -61,6 +60,11 @@ Code_t ZParseNotice(buffer,len,notice,auth,from) notice->z_auth = *temp; ptr += strlen(ptr)+1; + if (ZReadAscii(ptr,temp,sizeof(int)) == ZERR_BADFIELD) + return (ZERR_BADPKT); + notice->z_authent_len = *temp; + ptr += strlen(ptr)+1; + notice->z_ascii_authent = ptr; ptr += strlen(ptr)+1; notice->z_class = ptr; @@ -92,14 +96,16 @@ Code_t ZParseNotice(buffer,len,notice,auth,from) } if (__Zephyr_server) { - if (ZReadAscii(notice->z_ascii_authent,&authent, + if (ZReadAscii(notice->z_ascii_authent,authent.dat, notice->z_authent_len) == ZERR_BADFIELD) { *auth = 0; return (ZERR_NONE); } + authent.length = notice->z_authent_len; result = rd_ap_req(&authent,SERVER_SERVICE, SERVER_INSTANCE,from->sin_addr.s_addr, - dat,SERVER_SRVTAB); + &dat,SERVER_SRVTAB); + bcopy(dat.session,__Zephyr_session,sizeof(C_Block)); *auth = (result == RD_AP_OK); return (ZERR_NONE); } diff --git a/lib/ZPeekIfNot.c b/lib/ZPeekIfNot.c index c81ae3a..d40d8fb 100644 --- a/lib/ZPeekIfNot.c +++ b/lib/ZPeekIfNot.c @@ -49,11 +49,9 @@ Code_t ZPeekIfNotice(buffer,buffer_len,notice,auth,predicate,args) return (ZERR_PKTLEN); bcopy(qptr->packet,buffer,qptr->packet_len); if ((retval = ZParseNotice(buffer,qptr->packet_len, - notice,auth)) + notice,auth,&qptr->from)) != ZERR_NONE) return (retval); - if (auth) - *auth = tmpauth; return (ZERR_NONE); } /* Grunch! */ diff --git a/lib/ZSendPkt.c b/lib/ZSendPkt.c index 60d84ae..bfc6bc8 100644 --- a/lib/ZSendPkt.c +++ b/lib/ZSendPkt.c @@ -42,7 +42,7 @@ Code_t ZSendPacket(packet,len) if (sendto(ZGetFD(),packet,len,0,&dest,sizeof(dest)) < 0) return (errno); - ZParseNotice(packet,len,¬ice,&auth); + ZParseNotice(packet,len,¬ice,0,0); if (notice.z_kind == UNSAFE || notice.z_kind == HMACK || notice.z_kind == SERVACK || __HM_set) @@ -54,7 +54,7 @@ Code_t ZSendPacket(packet,len) for (i=0;i<12;i++) { select(0,&t1,&t2,&t3,&tv); retval = ZCheckIfNotice(ackpack,sizeof ackpack,¬ice, - &auth,findack,¬ice.z_uid); + &auth,findack,(char *)¬ice.z_uid); if (retval == ZERR_NONE) return (ZERR_NONE); if (retval != ZERR_NONOTICE) |