68#define SBUFF_CHAR_CLASS UINT8_MAX + 1
75 if (result >= 0) __coverity_write_buffer_bytes__(
out->p, result + 1);
86 if (result >= 0) __coverity_write_buffer_bytes__(
out->p, result);
173 __coverity_write_buffer_bytes__(
out->p, copied + 1);
191 __coverity_write_buffer_bytes__(
out->p, copied + 1);
204 __coverity_write_buffer_bytes__(
out->p, copied + 1);
215 if (result > 0) __coverity_write_buffer_bytes__(
out->p, result);
227 if (result > 0) __coverity_write_buffer_bytes__(
out->p, result);
242 if (result > 0) __coverity_write_buffer_bytes__(
out, result + 1);
258 if (result >= 0) __coverity_write_buffer_bytes__(
out->p, result + 1);
263#ifndef MD5_DIGEST_LENGTH
264# define MD5_DIGEST_LENGTH 16
281 __coverity_mark_pointee_as_sanitized__(&packet, TAINTED_SCALAR_GENERIC);
282 __coverity_mark_pointee_as_sanitized__(packet, TAINTED_SCALAR_GENERIC);
283 __coverity_mark_pointee_as_sanitized__(packet_len_p, TAINTED_SCALAR_GENERIC);
295 __coverity_writeall__(
out);
307 if (!ptr) __coverity_panic__();
309 __coverity_mark_pointee_as_sanitized__(&ptr, TAINTED_SCALAR_GENERIC);
333 __coverity_exclusive_lock_acquire__(&ef->
mutex);
334 if (offset) *offset = real_offset;
344 __coverity_exclusive_lock_release__(&ef->
mutex);
365 __coverity_panic__();
384 __coverity_escape__(
n);
static int const char * fmt
static uint8_t request[4]
Values of the encryption flags.
#define MD5_DIGEST_LENGTH
fr_sbuff_err_t fr_sbuff_out_bstrncpy_exact(fr_sbuff_t *out, fr_sbuff_t *in, size_t len)
bool fr_radius_ok(uint8_t const *packet, size_t *packet_len_p, uint32_t max_attributes, bool require_message_authenticator, decode_fail_t *reason)
size_t(* xlat_escape_legacy_t)(request_t *request, char *out, size_t outlen, char const *in, void *arg)
@ FR_TYPE_TIME_DELTA
A period of time measured in nanoseconds.
@ FR_TYPE_FLOAT32
Single precision floating point.
@ FR_TYPE_IPV4_ADDR
32 Bit IPv4 Address.
@ FR_TYPE_INT8
8 Bit signed integer.
@ FR_TYPE_TLV
Contains nested attributes.
@ FR_TYPE_ETHERNET
48 Bit Mac-Address.
@ FR_TYPE_IPV6_PREFIX
IPv6 Prefix.
@ FR_TYPE_STRING
String of printable characters.
@ FR_TYPE_MAX
Number of defined data types.
@ FR_TYPE_NULL
Invalid (uninitialised) attribute type.
@ FR_TYPE_UINT16
16 Bit unsigned integer.
@ FR_TYPE_INT64
64 Bit signed integer.
@ FR_TYPE_INT16
16 Bit signed integer.
@ FR_TYPE_DATE
Unix time stamp, always has value >2^31.
@ FR_TYPE_COMBO_IP_PREFIX
IPv4 or IPv6 address prefix depending on length.
@ FR_TYPE_VALUE_BOX
A boxed value.
@ FR_TYPE_UINT8
8 Bit unsigned integer.
@ FR_TYPE_UINT32
32 Bit unsigned integer.
@ FR_TYPE_STRUCT
like TLV, but without T or L, and fixed-width children
@ FR_TYPE_INT32
32 Bit signed integer.
@ FR_TYPE_VENDOR
Attribute that represents a vendor in the attribute tree.
@ FR_TYPE_UINT64
64 Bit unsigned integer.
@ FR_TYPE_IPV6_ADDR
128 Bit IPv6 Address.
@ FR_TYPE_IPV4_PREFIX
IPv4 Prefix.
@ FR_TYPE_BOOL
A truth value.
@ FR_TYPE_SIZE
Unsigned integer capable of representing any memory address on the local system.
@ FR_TYPE_VSA
Vendor-Specific, for RADIUS attribute 26.
@ FR_TYPE_COMBO_IP_ADDR
IPv4 or IPv6 address depending on length.
@ FR_TYPE_IFID
Interface ID.
@ FR_TYPE_OCTETS
Raw octets.
@ FR_TYPE_GROUP
A grouping of other attributes.
@ FR_TYPE_FLOAT64
Double precision floating point.
ssize_t fr_dict_attr_flags_print(fr_sbuff_t *out, fr_dict_t const *dict, fr_type_t type, fr_dict_attr_flags_t const *flags)
int fr_inet_pton4(fr_ipaddr_t *out, char const *value, ssize_t inlen, bool resolve, bool fallback, bool mask_bits)
int acutest_check_(int cond, char const *file, int line, char const *fmt,...)
fr_sbuff_err_t fr_sbuff_out_bstrncpy_allowed(size_t *len, fr_sbuff_t *out, fr_sbuff_t *in, size_t max, bool const allowed[static SBUFF_CHAR_CLASS])
void acutest_abort_(void)
ssize_t fr_dict_attr_oid_print(fr_sbuff_t *out, fr_dict_attr_t const *ancestor, fr_dict_attr_t const *da, bool numeric)
int exfile_open(exfile_t *ef, char const *filename, mode_t permissions, int flags, off_t *offset)
ssize_t xlat_eval(char *out, size_t outlen, request_t *request, char const *fmt, xlat_escape_legacy_t escape, void const *escape_ctx)
void fr_md5_calc(uint8_t out[static MD5_DIGEST_LENGTH], uint8_t const *in, size_t inlen)
Perform a single digest operation on a single input buffer.
void atomic_ring_segment_publish(fr_atomic_ring_t *ring, fr_atomic_ring_segment_t *h, fr_atomic_ring_segment_t *n)
@ FR_SBUFF_ERR_INPUT_EMPTY
@ FR_SBUFF_ERR_UNINITIALISED
@ FR_SBUFF_ERR_INPUT_SHORT
fr_sbuff_err_t fr_sbuff_out_bstrncpy_until(size_t *len, fr_sbuff_t *out, fr_sbuff_t *in, size_t max, fr_sbuff_term_t const *tt, fr_sbuff_unescape_rules_t const *u_rules)
fr_slen_t fr_base16_decode_nstd(fr_sbuff_err_t *err, fr_dbuff_t *out, fr_sbuff_t *in, bool no_trailing, uint8_t const alphabet[static SBUFF_CHAR_CLASS])
fr_sbuff_err_t fr_sbuff_out_unescape_until(size_t *len, fr_sbuff_t *out, fr_sbuff_t *in, size_t max, fr_sbuff_term_t const *tt, fr_sbuff_unescape_rules_t const *u_rules)
void * _talloc_get_type_abort(const void *ptr, const char *name, const char *location)
fr_slen_t tmpl_print(fr_sbuff_t *out, tmpl_t const *vpt, fr_sbuff_escape_rules_t const *e_rules)
fr_slen_t fr_base16_encode_nstd(fr_sbuff_t *out, fr_dbuff_t *in, char const alphabet[static SBUFF_CHAR_CLASS])
int exfile_close(exfile_t *ef, int fd)
Set of terminal elements.
Set of parsing rules for *unescape_until functions.
fr_aka_sim_id_type_t type
static fr_sbuff_err_t char size_t fr_sbuff_t * in
static fr_sbuff_err_t char size_t fr_sbuff_t size_t max
static fr_sbuff_err_t char ** out
static fr_sbuff_err_t char size_t * len