From: Arran Cudbard-Bell Date: Thu, 28 Jan 2021 16:04:47 +0000 (+0000) Subject: Avoid type conflicts in fr_dbuff_advance X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4f3b7e902fd1f21db2f9542e69dbf2470f0729a4;p=thirdparty%2Ffreeradius-server.git Avoid type conflicts in fr_dbuff_advance --- diff --git a/src/lib/eap_aka_sim/encode.c b/src/lib/eap_aka_sim/encode.c index c56e3786dc..bdcccdb871 100644 --- a/src/lib/eap_aka_sim/encode.c +++ b/src/lib/eap_aka_sim/encode.c @@ -706,8 +706,8 @@ static inline ssize_t encode_tlv_internal(fr_dbuff_t *dbuff, value_len, encoder_ctx); if (slen < 0) return PAIR_ENCODE_FATAL_ERROR; - FR_DBUFF_EXTEND_LOWAT_OR_RETURN(&work_dbuff, (size_t) slen - value_len); - fr_dbuff_advance(&work_dbuff, slen - value_len); + FR_DBUFF_EXTEND_LOWAT_OR_RETURN(&work_dbuff, (size_t)slen - value_len); + fr_dbuff_advance(&work_dbuff, (size_t)slen - value_len); } FR_PROTO_HEX_DUMP(fr_dbuff_start(&work_dbuff), fr_dbuff_used(&work_dbuff), "Done TLV"); diff --git a/src/lib/util/dbuff.h b/src/lib/util/dbuff.h index 1aa5d2ddb0..3c02e5baed 100644 --- a/src/lib/util/dbuff.h +++ b/src/lib/util/dbuff.h @@ -29,14 +29,14 @@ RCSIDH(dbuff_h, "$Id$") extern "C" { # endif +#include #include #include #include +#include #include #include #include -#include -#include /** A dbuff * @@ -936,14 +936,12 @@ _fr_dbuff_set(\ fr_dbuff_set(_dbuff_or_marker, \ (fr_dbuff_current(_dbuff_or_marker) + \ (_Generic((_len), \ - uint8_t : (size_t)(_len), \ - uint16_t : (size_t)(_len), \ - uint32_t : (size_t)(_len), \ - uint64_t : (size_t)(_len), \ - int : (size_t)(_len), \ - long : (size_t)(_len), \ - long long : (size_t)(_len), \ - size_t : (_len) \ + unsigned char : (size_t)(_len), \ + unsigned short : (size_t)(_len), \ + unsigned int : (size_t)(_len), \ + unsigned long : (size_t)(_len), \ + unsigned long long : (size_t)(_len), \ + int : (fr_cond_assert((_len) >= 0) ? (size_t)(_len) : 0) \ )))) /** Advance the 'current' position in dbuff or marker by _len bytes returning if _len is out of range diff --git a/src/protocols/dhcpv6/encode.c b/src/protocols/dhcpv6/encode.c index 371a2b7437..396685e5e8 100644 --- a/src/protocols/dhcpv6/encode.c +++ b/src/protocols/dhcpv6/encode.c @@ -171,7 +171,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, if ((da->flags.subtype == FLAG_ENCODE_PARTIAL_DNS_LABEL) && (*(fr_dbuff_current(&p) + fr_dbuff_current(&p)[0] + 1) == 0)) { fr_dbuff_set_to_start(&work_dbuff); - fr_dbuff_advance(&work_dbuff, slen - 1); + fr_dbuff_advance(&work_dbuff, (size_t)slen - 1); } break; } @@ -321,7 +321,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, fr_dict_attr_t **u; memcpy(&u, &c, sizeof(c)); /* const issues */ - memcpy(u, &vp->da, sizeof(vp->da)); + memcpy(u, &vp->da, sizeof(vp->da)); } FALL_THROUGH;