From: Arran Cudbard-Bell Date: Thu, 19 Sep 2019 17:38:54 +0000 (-0500) Subject: Always return instead of calling fr_cond_assert so stupid static analysers don't... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f4e26b818f418022cfe296899cbf4cbc6c44798f;p=thirdparty%2Ffreeradius-server.git Always return instead of calling fr_cond_assert so stupid static analysers don't get confused --- diff --git a/src/lib/server/cf_parse.c b/src/lib/server/cf_parse.c index 70e047b3ea6..5c35f8a9ac5 100644 --- a/src/lib/server/cf_parse.c +++ b/src/lib/server/cf_parse.c @@ -673,7 +673,8 @@ static int CC_HINT(nonnull(4,5)) cf_pair_parse_internal(TALLOC_CTX *ctx, void *o default: cf_log_err(cp, "Unsupported type %i (%i)", type, FR_BASE_TYPE(type)); - if (!fr_cond_assert(0)) return -1; /* Unsupported type */ + fr_assert_fail(NULL); + return -1; /* Unsupported type */ } for (i = 0; i < count; i++, cp = cf_pair_find_next(cs, cp, rule->name)) { diff --git a/src/lib/server/cf_util.c b/src/lib/server/cf_util.c index 596ebb2e475..b96f63b5bdb 100644 --- a/src/lib/server/cf_util.c +++ b/src/lib/server/cf_util.c @@ -114,7 +114,8 @@ static CONF_ITEM *cf_find(CONF_ITEM const *parent, CONF_ITEM_TYPE type, char con break; default: - if (!fr_cond_assert(0)) return NULL; + fr_assert_fail(NULL); + return NULL; } /* @@ -204,7 +205,8 @@ static CONF_ITEM *cf_find_next(CONF_ITEM const *parent, CONF_ITEM const *prev, break; default: - if (!fr_cond_assert(0)) return NULL; + fr_assert_fail(NULL); + return NULL; } if (IS_WILDCARD(ident1)) { @@ -285,7 +287,7 @@ static inline int _cf_ident1_cmp(void const *a, void const *b) } default: - if (!fr_cond_assert(0)) return 0; + fr_assert_fail(NULL); return 0; } } @@ -335,7 +337,7 @@ static inline int cf_ident2_cmp(void const *a, void const *b) } default: - if (!fr_cond_assert(0)) return 0; + fr_assert_fail(NULL); return 0; } } diff --git a/src/lib/server/password.c b/src/lib/server/password.c index 57e3631f69e..0f35116e0f7 100644 --- a/src/lib/server/password.c +++ b/src/lib/server/password.c @@ -690,7 +690,8 @@ do_header: break; default: - if (!fr_cond_assert(0)) return NULL; + fr_assert_fail(NULL); + return NULL; } return new; } diff --git a/src/lib/server/tmpl.c b/src/lib/server/tmpl.c index bdbdda7373e..17e8c322bf4 100644 --- a/src/lib/server/tmpl.c +++ b/src/lib/server/tmpl.c @@ -2192,7 +2192,8 @@ size_t tmpl_snprint_attr_str(size_t *need, char *out, size_t outlen, vp_tmpl_t c break; default: - if (!fr_cond_assert(0)) return 0; + fr_assert_fail(NULL); + return 0; } *out_p = '\0'; diff --git a/src/lib/server/xlat_tokenize.c b/src/lib/server/xlat_tokenize.c index dcfd84ef188..3248730a487 100644 --- a/src/lib/server/xlat_tokenize.c +++ b/src/lib/server/xlat_tokenize.c @@ -855,7 +855,8 @@ size_t xlat_snprint(char *out, size_t outlen, xlat_exp_t const *node) break; default: - if (!fr_cond_assert(0)) break; + fr_assert_fail(NULL); + break; } *(p++) = '}'; diff --git a/src/lib/sim/base.c b/src/lib/sim/base.c index 94eaa1ca4fa..08e9dbd63b6 100644 --- a/src/lib/sim/base.c +++ b/src/lib/sim/base.c @@ -172,7 +172,7 @@ size_t fr_sim_attr_len(VALUE_PAIR const *vp) return fr_sim_attr_sizes[vp->vp_type][0]; case FR_TYPE_STRUCTURAL: - if (!fr_cond_assert(0)) return 0; + fr_assert_fail(NULL); return 0; } } diff --git a/src/lib/unlang/module.c b/src/lib/unlang/module.c index 6eadbba6c5f..5a5bcbdb9ff 100644 --- a/src/lib/unlang/module.c +++ b/src/lib/unlang/module.c @@ -496,7 +496,8 @@ rlm_rcode_t unlang_module_yield_to_section(REQUEST *request, CONF_SECTION *subcs } default: - if (!fr_cond_assert(0)) return RLM_MODULE_FAIL; + fr_assert_fail(NULL); + return RLM_MODULE_FAIL; } } diff --git a/src/lib/util/debug.h b/src/lib/util/debug.h index 5944c0dc304..5a489f31bf5 100644 --- a/src/lib/util/debug.h +++ b/src/lib/util/debug.h @@ -96,6 +96,13 @@ bool fr_cond_assert_fail(char const *file, int line, char const *expr, char con */ #define fr_cond_assert(_x) likely((bool)((_x) ? true : (fr_cond_assert_fail(__FILE__, __LINE__, #_x, NULL) && false))) +/** Calls panic_action ifndef NDEBUG, else logs error + * + * @param[in] _msg to log. + * @param[in] ... args. + */ +#define fr_assert_fail(_msg, ...) fr_cond_assert_fail(__FILE__, __LINE__, "false", _msg, ## __VA_ARGS__) + /** Calls panic_action ifndef NDEBUG, else logs error and evaluates to value of _x * * Should be wrapped in a condition, and if false, should cause function to return diff --git a/src/lib/util/value.c b/src/lib/util/value.c index eadeb749c21..1421f710875 100644 --- a/src/lib/util/value.c +++ b/src/lib/util/value.c @@ -297,7 +297,8 @@ inline void fr_value_box_clear(fr_value_box_t *data) break; case FR_TYPE_STRUCTURAL: - if (!fr_cond_assert(0)) return; + fr_assert_fail(NULL); + return; case FR_TYPE_INVALID: return; @@ -955,7 +956,8 @@ int fr_value_box_hton(fr_value_box_t *dst, fr_value_box_t const *src) case FR_TYPE_OCTETS: case FR_TYPE_STRING: case FR_TYPE_NON_VALUES: - if (!fr_cond_assert(0)) return -1; /* shouldn't happen */ + fr_assert_fail(NULL); + return -1; /* shouldn't happen */ } if (dst != src) fr_value_box_copy_meta(dst, src); @@ -2554,7 +2556,8 @@ int fr_value_box_cast(TALLOC_CTX *ctx, fr_value_box_t *dst, case FR_TYPE_GROUP: case FR_TYPE_INVALID: case FR_TYPE_MAX: - if (!fr_cond_assert(0)) return -1; + fr_assert_fail(NULL); + return -1; } /* @@ -3626,7 +3629,8 @@ static int fr_value_box_from_integer_str(fr_value_box_t *dst, fr_type_t dst_type break; default: - if (!fr_cond_assert(0)) return -1; + fr_assert_fail(NULL); + return -1; } #define IN_RANGE_UNSIGNED(_type) \ @@ -3693,7 +3697,8 @@ static int fr_value_box_from_integer_str(fr_value_box_t *dst, fr_type_t dst_type break; default: - if (!fr_cond_assert(0)) return -1; + fr_assert_fail(NULL); + return -1; } return 0; diff --git a/src/modules/rlm_sigtran/sccp.c b/src/modules/rlm_sigtran/sccp.c index 2d3fd41311e..a1b38b2c061 100644 --- a/src/modules/rlm_sigtran/sccp.c +++ b/src/modules/rlm_sigtran/sccp.c @@ -172,7 +172,8 @@ int sigtran_tcap_outgoing(UNUSED struct msgb *msg_in, void *ctx, sigtran_transac break; default: - if (!fr_cond_assert(0)) return -1; + fr_assert_fail(NULL); + return -1; } /* diff --git a/src/protocols/dhcpv6/base.c b/src/protocols/dhcpv6/base.c index 37001307272..9b67da1eb95 100644 --- a/src/protocols/dhcpv6/base.c +++ b/src/protocols/dhcpv6/base.c @@ -86,7 +86,7 @@ size_t fr_dhcpv6_option_len(VALUE_PAIR const *vp) return fr_dhcpv6_attr_sizes[vp->vp_type][0]; case FR_TYPE_STRUCTURAL: - if (!fr_cond_assert(0)) return 0; + fr_assert_fail(NULL); return 0; } } diff --git a/src/protocols/radius/base.c b/src/protocols/radius/base.c index 15e4d7b4174..488a939d04b 100644 --- a/src/protocols/radius/base.c +++ b/src/protocols/radius/base.c @@ -218,7 +218,7 @@ size_t fr_radius_attr_len(VALUE_PAIR const *vp) return fr_radius_attr_sizes[vp->vp_type][0]; case FR_TYPE_STRUCTURAL: - if (!fr_cond_assert(0)) return 0; + fr_assert_fail(NULL); return 0; } }