From: Alan T. DeKok Date: Mon, 17 Aug 2020 00:06:05 +0000 (-0400) Subject: xor should take 'const *hdr' X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f806623f78eefaafc5766287bd75bfc4e603267a;p=thirdparty%2Ffreeradius-server.git xor should take 'const *hdr' --- diff --git a/src/protocols/tacacs/base.c b/src/protocols/tacacs/base.c index 72a64b3ab3f..96397d87d93 100644 --- a/src/protocols/tacacs/base.c +++ b/src/protocols/tacacs/base.c @@ -117,7 +117,7 @@ void fr_tacacs_free(void) fr_dict_autofree(libfreeradius_tacacs_dict); } -int fr_tacacs_body_xor(fr_tacacs_packet_t *pkt, uint8_t *body, size_t body_len, char const *secret, size_t secret_len) +int fr_tacacs_body_xor(fr_tacacs_packet_t const *pkt, uint8_t *body, size_t body_len, char const *secret, size_t secret_len) { uint8_t pad[MD5_DIGEST_LENGTH]; uint8_t *buf; @@ -147,6 +147,7 @@ int fr_tacacs_body_xor(fr_tacacs_packet_t *pkt, uint8_t *body, size_t body_len, memcpy(&buf[sizeof(pkt->hdr.session_id)], secret, secret_len); memcpy(&buf[sizeof(pkt->hdr.session_id) + secret_len], &pkt->hdr.version, sizeof(pkt->hdr.version)); memcpy(&buf[sizeof(pkt->hdr.session_id) + secret_len + sizeof(pkt->hdr.version)], &pkt->hdr.seq_no, sizeof(pkt->hdr.seq_no)); + fr_md5_calc(pad, buf, pad_offset); size_t pos = 0; diff --git a/src/protocols/tacacs/tacacs.h b/src/protocols/tacacs/tacacs.h index 2575ecb5922..d27a4c5fe83 100644 --- a/src/protocols/tacacs/tacacs.h +++ b/src/protocols/tacacs/tacacs.h @@ -288,4 +288,4 @@ int fr_tacacs_init(void); void fr_tacacs_free(void); -int fr_tacacs_body_xor(fr_tacacs_packet_t *pkt, uint8_t *body, size_t body_len, char const *secret, size_t secret_len); +int fr_tacacs_body_xor(fr_tacacs_packet_t const *pkt, uint8_t *body, size_t body_len, char const *secret, size_t secret_len);