diff options
author | Robert S. French <rfrench@mit.edu> | 1987-06-25 23:35:02 +0000 |
---|---|---|
committer | Robert S. French <rfrench@mit.edu> | 1987-06-25 23:35:02 +0000 |
commit | 2c8deb46a0f8da453f53e167a2e90f83fb50fd4c (patch) | |
tree | 05a4de0b5b0062d87d4563d3add5bb39af59d5e0 /lib/ZParseNot.c | |
parent | 6e0a23514dfcd08657ceae8aed4dd05d185acebc (diff) |
safety
Diffstat (limited to 'lib/ZParseNot.c')
-rw-r--r-- | lib/ZParseNot.c | 11 |
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); |