summaryrefslogtreecommitdiff
path: root/lib/ZParseNot.c
diff options
context:
space:
mode:
authorGravatar Robert S. French <rfrench@mit.edu>1987-06-25 23:35:02 +0000
committerGravatar Robert S. French <rfrench@mit.edu>1987-06-25 23:35:02 +0000
commit2c8deb46a0f8da453f53e167a2e90f83fb50fd4c (patch)
tree05a4de0b5b0062d87d4563d3add5bb39af59d5e0 /lib/ZParseNot.c
parent6e0a23514dfcd08657ceae8aed4dd05d185acebc (diff)
safety
Diffstat (limited to 'lib/ZParseNot.c')
-rw-r--r--lib/ZParseNot.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/ZParseNot.c b/lib/ZParseNot.c
index 3dfd657..2f74fd4 100644
--- a/lib/ZParseNot.c
+++ b/lib/ZParseNot.c
@@ -23,7 +23,7 @@ Code_t ZParseNotice(buffer,len,notice,auth,from)
int *auth;
struct sockaddr_in *from;
{
- char *ptr,*cksum;
+ char *ptr,*cksum,srcprincipal[ANAME_SZ+INST_SZ+REALM_SZ+4];
int result;
unsigned int temp[3];
AUTH_DAT dat;
@@ -107,16 +107,17 @@ Code_t ZParseNotice(buffer,len,notice,auth,from)
&dat,SERVER_SRVTAB);
bcopy(dat.session,__Zephyr_session,sizeof(C_Block));
*auth = (result == RD_AP_OK);
+ sprintf(srcprincipal,"%s%s%s@%s",dat.pname,
+ dat.pinst[0]?".":"",dat.pinst,dat.prealm);
+ if (strcmp(srcprincipal,notice->z_sender))
+ *auth = 0;
return (ZERR_NONE);
}
if (result = get_credentials(SERVER_SERVICE,SERVER_INSTANCE,
- __Zephyr_realm,&cred))
+ __Zephyr_realm,&cred))
return (result+krb_err_base);
-/* if (result = key_sched(cred.session,sess_sched))
- return (result+krb_err_base);
-*/
our_checksum = (ZChecksum_t)quad_cksum(buffer,NULL,cksum-buffer,0,
cred.session);