Make xdr_krb5_kvno() use xdr_u_int() instead of xdr_u_char(), allowing
it to marshal kvno values up to 32 bits. This change is
backwards-compatible because XDR uses four bytes to marshal char
values and does no bounds checking of char values on decode.
ticket: 7532
bool_t
xdr_krb5_kvno(XDR *xdrs, krb5_kvno *objp)
{
- unsigned char tmp;
-
- tmp = '\0'; /* for purify, else xdr_u_char performs a umr */
-
- if (xdrs->x_op == XDR_ENCODE)
- tmp = (unsigned char) *objp;
-
- if (!xdr_u_char(xdrs, &tmp))
- return (FALSE);
-
- if (xdrs->x_op == XDR_DECODE)
- *objp = (krb5_kvno) tmp;
-
- return (TRUE);
+ return xdr_u_int(xdrs, objp);
}
bool_t