]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Uniform way of dealing with static analysis (#4613)
authorJames Jones <jejones3141@gmail.com>
Thu, 14 Jul 2022 13:32:32 +0000 (08:32 -0500)
committerGitHub <noreply@github.com>
Thu, 14 Jul 2022 13:32:32 +0000 (09:32 -0400)
Static analysis doesn't necessarily infer all properties of code
and thus may give false positives. Since we use at least two static
analyzers, clang's and coverity, we define STATIC_ANALYZER if and
only if some static analysis is running, and check it instead of
a macro specific to a particular static analyzer. It's defined,
or not, in src/include/build.h, so that adding a new static
analyzer only requires adding code, not changing it.

34 files changed:
src/include/build.h
src/lib/eap_aka_sim/decode.c
src/lib/io/master.c
src/lib/server/auth.c
src/lib/server/module.c
src/lib/server/paircmp.c
src/lib/server/password.c
src/lib/server/rad_assert.h
src/lib/tls/cache.c
src/lib/tls/verify.c
src/lib/unlang/edit.c
src/lib/unlang/load_balance.c
src/lib/unlang/xlat_expr.c
src/lib/unlang/xlat_tokenize.c
src/lib/util/dbuff.c
src/lib/util/debug.h
src/lib/util/decode.c
src/lib/util/dict_tokenize.c
src/lib/util/dict_unknown.c
src/lib/util/dict_util.c
src/lib/util/dl.c
src/lib/util/hw.c
src/lib/util/machine.c
src/lib/util/misc.h
src/lib/util/pair.c
src/lib/util/sbuff.c
src/lib/util/sha1.c
src/lib/util/udpfromto.c
src/lib/util/value.c
src/modules/rlm_passwd/rlm_passwd.c
src/protocols/dhcpv4/decode.c
src/protocols/dhcpv6/decode.c
src/protocols/dns/decode.c
src/protocols/radius/decode.c

index 35b6f27a552cf478a5564240da3fc959ebf4d367..b796f84b64a8fb837920e80ee8a4e55e1e48dc87 100644 (file)
@@ -38,11 +38,25 @@ extern "C" {
 #endif
 
 /*
- *     Reduce spurious errors from clang scan by having
+ *     Static analyzers don't notice or can't infer some properties
+ *     of the code, and hence may give false positives. To deal with
+ *     them, there is some conditionally compiled code in various
+ *     places. The following lets the code change minimally if and
+ *     when new static analyzers are added.
+ */
+#ifdef __clang_analyzer__
+#define STATIC_ANALYZER        1
+#endif
+#ifdef __COVERITY__
+#define STATIC_ANALYZER 1
+#endif
+
+/*
+ *     Reduce spurious errors from static analyzers by having
  *     all paths that find the da to be NULL, result
  *     in program exit.
  */
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
 #  define WITH_VERIFY_PTR      1
 #endif
 
index 8482c2a8e0ea116dab0febae9833d05e1d88150f..be77a3eb1da9793b9f1e1584a87e10b2e8e7bf78 100644 (file)
@@ -691,7 +691,7 @@ static ssize_t sim_decode_pair_value(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_di
                        return -1;
                }
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                if (!parent->parent) return -1; /* stupid static analyzers */
 #endif
                fr_assert(parent->parent);
index 4fe70d9071531c1173b0fef81d9781153561c980..0f3cade2106735e9a5e382e30acd0de7e8249063 100644 (file)
@@ -1246,8 +1246,8 @@ redo:
                        return 0;
                }
 
-#ifdef __clang_analyzer__
-               saremote.ss_family = AF_INET; /* clang doesn't know that accept() initializes this */
+#ifdef STATIC_ANALYZER
+               saremote.ss_family = AF_INET; /* static analyzer doesn't know that accept() initializes this */
 #endif
 
                /*
index df3eb0dba3cd2887fa758efe33c780434a298bfc..eba404f66a4b6eb0aabe853ef1f4a75d8d75d5f5 100644 (file)
@@ -158,7 +158,7 @@ unlang_action_t rad_virtual_server(rlm_rcode_t *p_result, request_t *request)
 #endif
 
        if (!request->async) {
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                if (!request->parent) RETURN_MODULE_FAIL;
 #endif
                fr_assert(request->parent != NULL);
index ee7e09e5b08d9a48fe1bf531d695331dd2c13d73..237689ec2f02dffd71685a83c8f72c583396bd1a 100644 (file)
@@ -268,7 +268,7 @@ static int8_t module_instance_name_cmp(void const *one, void const *two)
         *      This happens, as dl_inst is is used in
         *      as the loop condition above.
         */
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!fr_cond_assert(a->dl_inst)) return +1;
        if (!fr_cond_assert(b->dl_inst)) return -1;
 #endif
index 1af93058933191b8c15893b38ef2df4af91f2f72..a9171abd2716c8f77464abd54c273532b232ba6f 100644 (file)
@@ -582,7 +582,7 @@ int paircmp(request_t *request,
                switch (check_item->op) {
                case T_OP_EQ:
                default:
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                        if (!check_item->da) return -1;
 #endif
 
index f6d565e56e7d0138ff45c11b5296762892bc93a9..3ca87943e14ede4d4b35af383269c08d18cb12df 100644 (file)
@@ -700,9 +700,9 @@ do_header:
                return new;
        }
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        /*
-        *      clang isn't smart enough to notice that "normify" clears out n1.
+        *      static analyzer isn't smart enough to notice that "normify" clears out n1.
         */
        memset(n1, 0, sizeof(n1));
 #endif
index 27c63cdb69e3a2aefef1393cd7a35bba2ae11337..3828370ff3254416342acff825ba54a1c98aaab4 100644 (file)
@@ -34,7 +34,7 @@ extern "C" {
 
 #ifdef NDEBUG
 #  define fr_assert(_expr)
-#elif !defined(__clang_analyzer__)
+#elif !defined(STATIC_ANALYZER)
 #  define fr_assert(_expr) ((void) ((_expr) ? (void) 0 : (void) fr_assert_exit(__FILE__, __LINE__, #_expr)))
 #else
 #  include <assert.h>
index 5e17dd92d1ad678cec77da84bbf9a2ccca4ca3d0..c98a29b96e4d9765f7d99439b72efd12a5ddd769 100644 (file)
@@ -1268,7 +1268,7 @@ static SSL_TICKET_RETURN tls_cache_session_ticket_app_data_get(SSL *ssl, SSL_SES
        case SSL_TICKET_FATAL_ERR_MALLOC:
        case SSL_TICKET_FATAL_ERR_OTHER:
        case SSL_TICKET_NONE:
-#if defined(__clang_analyzer__) || defined(__COVERITY__)
+#ifdef STATIC_ANALYZER
        default:
 #endif
                return SSL_TICKET_RETURN_IGNORE_RENEW;  /* Send a new ticket */
index be8ce12c3b5e695b1000ce3baa3a7544885b5752..2cff603c924b59ea9ba756b2ca5472af6d2feb1f 100644 (file)
@@ -243,7 +243,7 @@ int fr_tls_verify_cert_cb(int ok, X509_STORE_CTX *x509_ctx)
                        }
                }
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                /*
                 *      Container can never be NULL, because if container
                 *      was previously NULL, i will be <= depth.
index 6a71e442df00a388fab46a2b384098260486e43a..978e9f163e80b094adaea8820acd0d0bb0f1c65e 100644 (file)
@@ -279,7 +279,7 @@ static int apply_edits(request_t *request, unlang_frame_state_edit_t *state, map
 
        fr_assert(state->lhs.vp != NULL);
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!state->lhs.vp) return -1;
 #endif
 
@@ -657,7 +657,7 @@ static unlang_action_t process_edit(rlm_rcode_t *p_result, request_t *request, u
                        goto check_rhs;
 
                case UNLANG_EDIT_EXPANDED_RHS:
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                        if (!state->lhs.vp) goto error;
 #endif
 
index 5f3570eb98b6a753dc0ee4a7c8a7bc6f482828cd..e30873cce9759832337e068cf210cb4baa7bf408 100644 (file)
@@ -36,7 +36,7 @@ static unlang_action_t unlang_load_balance_next(rlm_rcode_t *p_result, request_t
        unlang_frame_state_redundant_t  *redundant = talloc_get_type_abort(frame->state, unlang_frame_state_redundant_t);
        unlang_group_t                  *g = unlang_generic_to_group(frame->instruction);
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!redundant->found) {
                *p_result = RLM_MODULE_FAIL;
                return UNLANG_ACTION_CALCULATE_RESULT;
index b215009f8afcf1e97c05ecc239853072c0e054b9..046fc40b00bba9a200e1f6e1c9d6915b5dff5db1 100644 (file)
@@ -288,7 +288,7 @@ static xlat_action_t xlat_binary_op(TALLOC_CTX *ctx, fr_dcursor_t *out,
        a = fr_dlist_head(in);
        b = fr_dlist_next(in, a);
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!a || !b) return XLAT_ACTION_FAIL;
 #else
        fr_assert(a != NULL);
@@ -2413,7 +2413,7 @@ static ssize_t tokenize_expression(xlat_exp_head_t *head, xlat_exp_t **out, fr_s
        }
 
 redo:
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!lhs) return 0;     /* shut up stupid analyzer */
 #else
        fr_assert(lhs != NULL);
@@ -2512,8 +2512,8 @@ redo:
                talloc_free(lhs);
                FR_SBUFF_ERROR_RETURN_ADJ(&our_in, slen);
        }
-       
-#ifdef __clang_analyzer__
+
+#ifdef STATIC_ANALYZER
        if (!rhs) {
                talloc_free(lhs);
                FR_SBUFF_ERROR_RETURN(&our_in);
index 30337e4d4234aa13437ca2db92a0b75b3098f44b..d9b2bcb38475571bcc818cfada7ad11addb678aa 100644 (file)
@@ -1013,7 +1013,7 @@ static int xlat_tokenize_string(xlat_exp_head_t *head,
                        xlat_exp_set_type(node, XLAT_ONE_LETTER);
                        xlat_exp_set_name_buffer_shallow(node, str);
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                        if (!node->fmt) goto error;
 #endif
 
index 7eca599368ee7c0fd9a4b6c2671f94ddef441008..4213dcd6a56e66dcd6a1a0e8eb62767fb48a1428 100644 (file)
@@ -28,7 +28,7 @@ RCSID("$Id$")
 #include <freeradius-devel/util/dbuff.h>
 #include <freeradius-devel/util/syserror.h>
 
-#if defined(__clang_analyzer__) || !defined(NDEBUG)
+#if defined(STATIC_ANALYZER) || !defined(NDEBUG)
 #  define CHECK_DBUFF_INIT(_sbuff)     if (!(_sbuff)->extend && (unlikely(!(_sbuff)->buff) || unlikely(!(_sbuff)->start) || unlikely(!(_sbuff)->end) || unlikely(!(_sbuff)->p))) return 0;
 #else
 #  define CHECK_DBUFF_INIT(_sbuff)
index f70bf251b0a8709844f5bcea2f85b190d8cea608..9978d97ff4ef6e3be9e8b224b81feb5248c10451 100644 (file)
@@ -191,7 +191,7 @@ NEVER_RETURNS void  _fr_exit(char const *file, int line, int status, bool now);
 #  define fr_assert(_x)
 #  define fr_assert_msg(_x, _msg, ...)
 #  define fr_assert_fail(_msg, ...)
-#elif !defined(__clang_analyzer__)
+#elif !defined(STATIC_ANALYZER)
 /** Calls panic_action ifndef NDEBUG, else logs error
  *
  * @param[in] _x       expression to test (should evaluate to true)
index 77b6b4b36841f73cfa4716ed27ba99ad14feec2f..e64128adc022bb64ee872d42bd7d8d279f638beb 100644 (file)
@@ -84,7 +84,7 @@ ssize_t fr_pair_raw_from_network(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_a
        fr_dict_attr_t *unknown;
        fr_dict_attr_t const *child;
 
-#if defined(__clang_analyzer__) || !defined(NDEBUG)
+#if defined(STATIC_ANALYZER) || !defined(NDEBUG)
        if (!parent->parent) return -1; /* stupid static analyzers */
 #endif
 
index 9c1ee2cf2471bbc1dc50e1f530d50fa7ea7d8d15..c9223402fb599bbae961e0bf7e7f814bfa275369 100644 (file)
@@ -831,7 +831,7 @@ static int dict_read_process_attribute(dict_tokenize_ctx_t *ctx, char **argv, in
        }
 #endif
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!ctx->dict) return -1;
 #endif
 
@@ -1044,7 +1044,7 @@ static int dict_read_process_enum(dict_tokenize_ctx_t *ctx, char **argv, int arg
         *      Maybe we do want a flag field for named time deltas?
         */
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!ctx->dict) return -1;
 #endif
 
@@ -1136,7 +1136,7 @@ static int dict_read_process_member(dict_tokenize_ctx_t *ctx, char **argv, int a
                if (!dict_attr_flags_valid(ctx->dict, ctx->stack[ctx->stack_depth].da, argv[2], NULL, type, &flags)) return -1;
        }
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!ctx->dict) return -1;
 #endif
 
@@ -1675,7 +1675,7 @@ post_option:
         */
        dict = dict_by_protocol_name(argv[0]);
        if (dict) {
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                if (!dict->root) return -1;
 #endif
 
@@ -1686,7 +1686,7 @@ post_option:
                }
 
        } else if ((dict = dict_by_protocol_num(value)) != NULL) {
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                if (!dict->root || !dict->root->name || !argv[0]) return -1;
 #endif
 
index b16a80fa576f7fc712d73bede2b4f7d5dd7986b3..540fb1a528a0f1fdc3f6aa164609099509ac7995 100644 (file)
@@ -65,7 +65,7 @@ fr_dict_attr_t const *fr_dict_unknown_add(fr_dict_t *dict, fr_dict_attr_t const
                        return NULL;
                }
        } else {
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                if (!unknown->parent) return NULL;
 #endif
                parent = unknown->parent;
@@ -124,7 +124,7 @@ fr_dict_attr_t const *fr_dict_unknown_add(fr_dict_t *dict, fr_dict_attr_t const
                return n;
        }
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!unknown->name) return NULL;
 #endif
 
index 6f43caf42f0a8c6dc680cea21a122c431c896070..66ee021c7bf696a2ed8af22a09096e38fe102eda 100644 (file)
@@ -3234,7 +3234,7 @@ static int _dict_free(fr_dict_t *dict)
                }
        }
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!dict->root) return -1;
 #endif
 
index 6be8069e2d678cfd382d1cea12daee0a5788f64d..905c687a6b18beca71e20e54047212b956d2dd18 100644 (file)
@@ -126,7 +126,7 @@ static int8_t dl_symbol_init_cmp(void const *one, void const *two)
 
        if (!a->symbol && !b->symbol) return 0;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!fr_cond_assert(a->symbol && b->symbol)) return 0;  /* Bug in clang scan ? */
 #endif
 
@@ -149,7 +149,7 @@ static int8_t dl_symbol_free_cmp(void const *one, void const *two)
 
        if (!a->symbol && !b->symbol) return 0;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!fr_cond_assert(a->symbol && b->symbol)) return 0;  /* Bug in clang scan ? */
 #endif
 
index d83677a926e97926db3dbdd117e6a18a8768b262..c6a92646fdd0dae2edb47f5723d602b3a7d59fa7 100644 (file)
@@ -93,14 +93,14 @@ uint32_t fr_hw_num_cores_active(void)
        /*
         *      Catch Linux weirdness.
         *
-        *      You'd think this'd be enough to quite clang scan,
+        *      You'd think this'd be enough to quiet clang scan,
         *      but it's not.
         */
        if (unlikely((tsibs == 0) || (lcores == 0) || (lcores > tsibs))) return 1;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        /*
-        *      Prevent clang scanner from warning about divide by zero
+        *      Prevent static analyzer from warning about divide by zero
         */
        if ((tsibs / lcores) == 0) return 1;
 #endif
index aa6a2447bbb6f81cdbbb83ab8aeae79f6ff8150d..72d4a0b98ca3a98fa0796aa009ba038758f7b55e 100644 (file)
@@ -234,7 +234,7 @@ fr_machine_t *fr_machine_alloc(TALLOC_CTX *ctx, fr_machine_def_t const *def, voi
        fr_assert(!m->current->def->exit);
        fr_assert(m->current->def->process);
 
-#if defined(__clang_analyzer__)
+#ifdef STATIC_ANALYZER
        if (!m->current || !m->current->def || !m->current->def->process) {
                talloc_free(m);
                return NULL;
index fabf69ac8bf11360707425731d0f5a51c89b1845..31ea5a6161cb9198c0e6f7fcf37f335f1696a2bb 100644 (file)
@@ -85,7 +85,7 @@ void          fr_talloc_verify_cb(const void *ptr, int depth,
  */
 static inline bool is_whitespace(char const *value)
 {
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (*value == '\0') return false;       /* clang analyzer doesn't seem to know what isspace does */
 #endif
        do {
@@ -127,7 +127,7 @@ static inline bool is_whitespace(char const *value)
  */
 static inline bool is_integer(char const *value)
 {
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (*value == '\0') return false;       /* clang analyzer doesn't seem to know what isdigit does */
 #endif
        do {
index 01526ca4f0e67c0e624a4e7532dd7c6c12178835..3d4bd2c372a6edad72c36f447ad8604caf5dd538 100644 (file)
@@ -1618,7 +1618,7 @@ void fr_pair_validate_debug(TALLOC_CTX *ctx, fr_pair_t const *failed[2])
        fr_pair_aprint(ctx, &value, NULL, list);
        fr_pair_aprint(ctx, &str, NULL, filter);
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!value || !str) return;
 #endif
 
index 115ced6edd3bd3296428b043c92c6b297a8b26e8..bff3739dc48f58906148d81da804eba36b875121 100644 (file)
@@ -43,7 +43,7 @@ fr_table_num_ordered_t const sbuff_parse_error_table[] = {
 };
 size_t sbuff_parse_error_table_len = NUM_ELEMENTS(sbuff_parse_error_table);
 
-#if defined(__clang_analyzer__) || !defined(NDEBUG)
+#if defined(STATIC_ANALYZER) || !defined(NDEBUG)
 #  define CHECK_SBUFF_INIT(_sbuff)     if (!(_sbuff)->extend && (unlikely(!(_sbuff)->buff) || unlikely(!(_sbuff)->start) || unlikely(!(_sbuff)->end) || unlikely(!(_sbuff)->p))) return 0;
 #else
 #  define CHECK_SBUFF_INIT(_sbuff)
index 6a7c25eef236cab3a0d3f33928a13b701f5c34f1..da492d3ce6ed2ac235a41a7a8a5a860f9f6180aa 100644 (file)
@@ -81,7 +81,7 @@ void fr_sha1_transform(uint32_t state[static 5], uint8_t const buffer[static 64]
        state[3] += d;
        state[4] += e;
 
-#  ifndef __clang_analyzer__
+#  ifndef STATIC_ANALYZER
        /* Wipe variables */
        a = b = c = d = e = 0;
 #  endif
@@ -155,7 +155,7 @@ void fr_sha1_final(uint8_t digest[static SHA1_DIGEST_LENGTH], fr_sha1_ctx *conte
                digest[i] = (uint8_t)((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
        }
 
-#  ifndef __clang_analyzer__
+#  ifndef STATIC_ANALYZER
        /* Wipe variables */
        i = j = 0;
        memset(context->buffer, 0, 64);
@@ -177,7 +177,7 @@ void fr_sha1_final_no_len(uint8_t digest[static SHA1_DIGEST_LENGTH], fr_sha1_ctx
                digest[i] = (uint8_t)((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
        }
 
-#  ifndef __clang_analyzer__
+#  ifndef STATIC_ANALYZER
        /* Wipe variables */
        i = j = 0;
        memset(context->buffer, 0, 64);
index 11f0a1168bc8ded6546624342af48d8795d583b5..9533b0980616cbc994415a4c70ca88277cc00898 100644 (file)
@@ -98,10 +98,10 @@ int udpfromto_init(int s)
        errno = ENOSYS;
 
        /*
-        *      Clang analyzer doesn't see that getsockname initialises
+        *      Static analyzer doesn't see that getsockname initialises
         *      the memory passed to it.
         */
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        memset(&si, 0, sizeof(si));
 #endif
 
@@ -214,10 +214,10 @@ int recvfromto(int fd, void *buf, size_t len, int flags,
        }
 
        /*
-        *      Clang analyzer doesn't see that getsockname initialises
+        *      Static analyzer doesn't see that getsockname initialises
         *      the memory passed to it.
         */
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        memset(&si, 0, sizeof(si));
 #endif
 
index b92ac0d564f1ae4f499de8242190a32c5dd1b03b..a730435c57eb39f92bc021e526f8f4b5cd30c762 100644 (file)
@@ -2811,7 +2811,7 @@ static inline int fr_value_box_cast_integer_to_integer(UNUSED TALLOC_CTX *ctx, f
 #define SIGN_PROMOTE(_int, _len)       ((_len) < sizeof(_int) ? \
                                        (_int) | (~((__typeof__(_int))0)) << ((_len) << 3) : (_int))
 
-#if !defined(NDEBUG) || defined(__clang_analyzer__)
+#if !defined(NDEBUG) || defined(STATIC_ANALYZER)
        /*
         *      Helps catch invalid fr_value_box_field_sizes
         *      entries, and shuts up clang analyzer.
index 751996d02aa7a0597050b95fa0c25876e8f694f6..6acad084b8d358e589986aa17a6649b1c3a2c3ce 100644 (file)
@@ -581,9 +581,9 @@ static unlang_action_t CC_HINT(nonnull) mod_passwd_map(rlm_rcode_t *p_result, mo
                /*
                 *      Ensure we have the string form of the attribute
                 */
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
                /*
-                *      clang scan misses that fr_pair_print_value_quoted
+                *      static analyzer misses that fr_pair_print_value_quoted
                 *      always terminates the buffer.
                 */
                buffer[0] = '\0';
index 4fce1ee35372404d8abbb87d268cca872ced4c91..6a21ccf5e92c5784808a537fa51d92f63dd60ee6 100644 (file)
@@ -426,7 +426,7 @@ static ssize_t decode_option(TALLOC_CTX *ctx, fr_pair_list_t *out,
        fr_dict_attr_t const    *da;
        fr_dhcpv4_ctx_t         *packet_ctx = decode_ctx;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!packet_ctx || !packet_ctx->tmp_ctx) return PAIR_DECODE_FATAL_ERROR;
 #endif
 
index 1adfa10bead6df8def88bd8d51eb15a80b25f83b..847d27a4cb8bb073b246457ee13c868c02b88529 100644 (file)
@@ -304,7 +304,7 @@ static ssize_t decode_option(TALLOC_CTX *ctx, fr_pair_list_t *out,
        fr_dict_attr_t const    *da;
        fr_dhcpv6_decode_ctx_t  *packet_ctx = decode_ctx;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!packet_ctx || !packet_ctx->tmp_ctx) return PAIR_DECODE_FATAL_ERROR;
 #endif
 
index f4ed6f3a0ee7bcad7c0efcbc907a8f726b9c6470..ac48929fd9a1685616cee77120cf49e6bbfbdf9f 100644 (file)
@@ -58,7 +58,7 @@ static ssize_t decode_value_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,
 
                return fr_pair_dns_labels_from_network(ctx, out, parent, packet_ctx->packet, data, data_len, packet_ctx->lb, false);
        }
-       
+
        return decode_value(ctx, out, parent, data, data_len, decode_ctx);
 }
 
@@ -181,7 +181,7 @@ static ssize_t decode_option(TALLOC_CTX *ctx, fr_pair_list_t *out,
        fr_dict_attr_t const    *da;
        fr_dns_ctx_t            *packet_ctx = decode_ctx;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!packet_ctx || !packet_ctx->tmp_ctx) return PAIR_DECODE_FATAL_ERROR;
 #endif
 
index 803270fd5c9da77809cedd99d1338da9f0e7252d..7ecfdc016fcfd01e81b88a468000084163e3eba8 100644 (file)
@@ -436,7 +436,7 @@ static ssize_t decode_rfc(TALLOC_CTX *ctx, fr_pair_list_t *out,
        fr_dict_attr_t const    *da;
        fr_radius_ctx_t         *packet_ctx = decode_ctx;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!packet_ctx || !packet_ctx->tmp_ctx) return PAIR_DECODE_FATAL_ERROR;
 #endif
 
@@ -658,7 +658,7 @@ ssize_t fr_radius_decode_tlv(TALLOC_CTX *ctx, fr_pair_list_t *out,
        fr_pair_list_init(&head);
        if (data_len < 3) return -1; /* type, length, value */
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!packet_ctx->tmp_ctx) return -1;
 #endif
 
@@ -720,7 +720,7 @@ static ssize_t decode_vsa_internal(TALLOC_CTX *ctx, fr_pair_list_t *out,
        ssize_t                 attrlen, my_len;
        fr_dict_attr_t const    *da;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!packet_ctx->tmp_ctx) return -1;
 #endif
 
@@ -1004,7 +1004,7 @@ static ssize_t decode_wimax(TALLOC_CTX *ctx, fr_pair_list_t *out,
        uint8_t const           *attr, *end;
        fr_dict_attr_t const    *da;
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!packet_ctx->tmp_ctx) return -1;
 #endif
 
@@ -1244,7 +1244,7 @@ static ssize_t  CC_HINT(nonnull) decode_vsa(TALLOC_CTX *ctx, fr_pair_list_t *out
 
        fr_pair_list_init(&head);
 
-#ifdef __clang_analyzer__
+#ifdef STATIC_ANALYZER
        if (!packet_ctx->tmp_ctx) return -1;
 #endif