From: Alan T. DeKok Date: Tue, 3 Mar 2020 15:39:17 +0000 (-0500) Subject: original can be NULL X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a9cec496e2e51d1fe79747ef00cb0e1ddfa389d;p=thirdparty%2Ffreeradius-server.git original can be NULL and if so, use packet vector as the decoding vector. This changes makes the API easier to understand --- diff --git a/src/protocols/radius/base.c b/src/protocols/radius/base.c index 740f44f646f..2611793135c 100644 --- a/src/protocols/radius/base.c +++ b/src/protocols/radius/base.c @@ -1067,7 +1067,7 @@ ssize_t fr_radius_decode(TALLOC_CTX *ctx, uint8_t const *packet, size_t packet_l packet_ctx.tmp_ctx = talloc_init("tmp"); packet_ctx.secret = secret; - packet_ctx.vector = original + 4; + packet_ctx.vector = original ? original + 4 : packet + 4; fr_cursor_init(&cursor, vps); diff --git a/src/protocols/radius/radius.h b/src/protocols/radius/radius.h index 0138cad385e..8b87f9afb16 100644 --- a/src/protocols/radius/radius.h +++ b/src/protocols/radius/radius.h @@ -107,7 +107,7 @@ ssize_t fr_radius_encode(uint8_t *packet, size_t packet_len, uint8_t const *ori char const *secret, UNUSED size_t secret_len, int code, int id, VALUE_PAIR *vps); ssize_t fr_radius_decode(TALLOC_CTX *ctx, uint8_t const *packet, size_t packet_len, uint8_t const *original, - char const *secret, UNUSED size_t secret_len, VALUE_PAIR **vps) CC_HINT(nonnull); + char const *secret, UNUSED size_t secret_len, VALUE_PAIR **vps) CC_HINT(nonnull(1,2,5,7)); int fr_radius_init(void);