This commit was generated by cvs2svn to compensate for changes in r105765,

which included commits to RCS files with non-trunk default branches.
This commit is contained in:
Assar Westerlund 2002-10-23 06:10:08 +00:00
commit 20fae80cf2

View File

@ -117,16 +117,25 @@ kadm_ser_in(u_char **dat, int *dat_len, u_char *errdat)
u_char *retdat, *tmpdat; u_char *retdat, *tmpdat;
int retval, retlen; int retval, retlen;
if (strncmp(KADM_VERSTR, (char *)*dat, KADM_VERSIZE)) { if (*dat_len < (KADM_VERSIZE + sizeof(u_int32_t))
|| strncmp(KADM_VERSTR, (char *)*dat, KADM_VERSIZE) != 0) {
errpkt(errdat, dat, dat_len, KADM_BAD_VER); errpkt(errdat, dat, dat_len, KADM_BAD_VER);
return KADM_BAD_VER; return KADM_BAD_VER;
} }
in_len = KADM_VERSIZE; in_len = KADM_VERSIZE;
/* get the length */ /* get the length */
if ((retc = stv_long(*dat, &r_len, in_len, *dat_len)) < 0) if ((retc = stv_long(*dat, &r_len, in_len, *dat_len)) < 0 ||
(r_len > *dat_len - KADM_VERSIZE - sizeof(u_int32_t))) {
errpkt(errdat, dat, dat_len, KADM_LENGTH_ERROR);
return KADM_LENGTH_ERROR; return KADM_LENGTH_ERROR;
}
in_len += retc; in_len += retc;
authent.length = *dat_len - r_len - KADM_VERSIZE - sizeof(u_int32_t); authent.length = *dat_len - r_len - KADM_VERSIZE - sizeof(u_int32_t);
if (authent.length > MAX_KTXT_LEN) {
errpkt(errdat, dat, dat_len, KADM_LENGTH_ERROR);
return KADM_LENGTH_ERROR;
}
memcpy(authent.dat, (char *)(*dat) + in_len, authent.length); memcpy(authent.dat, (char *)(*dat) + in_len, authent.length);
authent.mbz = 0; authent.mbz = 0;
/* service key should be set before here */ /* service key should be set before here */