]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
More verbose sanity checks
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 15 Nov 2022 00:06:31 +0000 (18:06 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 15 Nov 2022 00:06:31 +0000 (18:06 -0600)
src/bin/unit_test_attribute.c
src/lib/server/cf_file.c
src/lib/server/command.c
src/lib/server/cond_tokenize.c
src/lib/unlang/compile.c
src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c
src/protocols/dhcpv4/encode.c
src/protocols/dhcpv6/encode.c
src/protocols/dns/encode.c
src/protocols/radius/decode.c

index 086e3732485d19c65a072bb8f022fe00379f57af..8a724dd34f6c44ecae694cb65f8e9400ddc7d99d 100644 (file)
@@ -1580,7 +1580,7 @@ static size_t command_decode_pair(command_result_t *result, command_file_ctx_t *
                        RETURN_OK_WITH_ERROR();
                }
                if ((size_t)slen > (size_t)(to_dec_end - to_dec)) {
-                       fr_perror("Internal sanity check failed at %d", __LINE__);
+                       fr_perror("%s: Internal sanity check failed at %d", __FUNCTION__, __LINE__);
                        ASAN_UNPOISON_MEMORY_REGION(to_dec_end, COMMAND_OUTPUT_MAX - slen);
                        CLEAR_TEST_POINT(cc);
                        RETURN_COMMAND_ERROR();
index 92213efcff0c6abd5d0933305f65cb549a1e8f99..f931cfe94c4670a4d772628e16a29b51bc5e4c43 100644 (file)
@@ -2461,7 +2461,7 @@ do_frame:
         *      One last sanity check.
         */
        if (frame->type != CF_STACK_FILE) {
-               cf_log_err(frame->current, "Internal sanity check failed");
+               cf_log_err(frame->current, "%s: Internal sanity check failed", __FUNCTION__);
                goto pop_stack;
        }
 #endif
index e7a8535eda5cb5b93e0be639614f6588939ab83b..fcb6790fbdcd040cf2de6ca62436c3c049286e98 100644 (file)
@@ -2099,7 +2099,7 @@ static int syntax_str_to_argv(int start_argc, fr_cmd_argv_t *start, fr_cmd_info_
                /*
                 *      Not done yet!
                 */
-               fr_strerror_const("Internal sanity check failed");
+               fr_strerror_printf("%s: Internal sanity check failed", __FUNCTION__);
                return -1;
 
        next:
index 50d55e9b83a830a2b469d6c191bf66d4369cebf4..6e55f43f644df27b9eab01eb0c115a62f2404a48 100644 (file)
@@ -312,7 +312,7 @@ int fr_cond_promote_types(fr_cond_t *c, fr_sbuff_t *in, fr_sbuff_marker_t *m_lhs
                        break;
 
                default:
-                       fr_strerror_const("Internal sanity check failed 1");
+                       fr_strerror_printf("%s: Internal sanity check failed", __FUNCTION__);
                        return -1;
                }
        }
@@ -751,7 +751,7 @@ static int cond_normalise(TALLOC_CTX *ctx, fr_token_t lhs_type, fr_cond_t **c_ou
                        break;
 
                default:
-                       fr_assert_fail("Internal sanity check failed 2");
+                       fr_assert_fail("%s: Internal sanity check failed", __FUNCTION__);
                        return -1;
                }
 
index aaba8c3eff494cbd15fb976e5945338934b48ba2..cdd5f295e7f0e602ec5435cbdc4e5b6cb04ded70 100644 (file)
@@ -2127,9 +2127,7 @@ static unlang_t *compile_children(unlang_group_t *g, unlang_compile_t *unlang_ct
                        }
 
                        goto add_child;
-               }
-
-               if (cf_item_is_pair(ci)) {
+               } else if (cf_item_is_pair(ci)) {
                        char const *attr;
                        CONF_PAIR *cp = cf_item_to_pair(ci);
 
@@ -2172,11 +2170,11 @@ static unlang_t *compile_children(unlang_group_t *g, unlang_compile_t *unlang_ct
                        }
 
                        goto add_child;
-               } /* was CONF_PAIR */
-
-               cf_log_err(ci, "Internal sanity check failed in unlang compile.");
-               talloc_free(c);
-               return NULL;
+               } else {
+                       cf_log_err(ci, "Asked to compile unknown conf type");
+                       talloc_free(c);
+                       return NULL;
+               }
 
        add_child:
                if (single == UNLANG_IGNORE) continue;
@@ -4390,8 +4388,10 @@ static unlang_t *compile_item(unlang_t *parent, unlang_compile_t *unlang_ctx, CO
 
                        c->number = unlang_number++;
                        if (!fr_rb_insert(unlang_instruction_tree, c)) {
+                               unlang_t *ex = fr_rb_find(unlang_instruction_tree, c);
+                               cf_log_err(ci, "Instruction \"%s\" number %i conflicts with \"%s\" number %i",
+                                          c->debug_name, c->number, ex->debug_name, ex->number);
                                talloc_free(c);
-                               cf_log_err(ci, "Internal sanity check failed");
                                return NULL;
                        }
 
@@ -4409,9 +4409,7 @@ static unlang_t *compile_item(unlang_t *parent, unlang_compile_t *unlang_ctx, CO
                /* else it's something like sql { fail = 1 ...} */
                goto check_for_module;
 
-       }
-
-       if (cf_item_is_pair(ci)) {
+       } else if (cf_item_is_pair(ci)) {
                /*
                 *      Else it's a module reference such as "sql", OR
                 *      one of the few bare keywords that we allow.
@@ -4454,11 +4452,11 @@ static unlang_t *compile_item(unlang_t *parent, unlang_compile_t *unlang_ctx, CO
                }
 
                goto check_for_module;
+       } else {
+               cf_log_err(ci, "Asked to compile unknown conf type");
+               return NULL;    /* who knows what it is... */
        }
 
-       cf_log_err(ci, "Internal sanity check failed in compile_item()");
-       return NULL;    /* who knows what it is... */
-
 check_for_module:
        /*
         *      We now have a name.  It can be one of two forms.  A
index 83b61abaea037f30c1e65ffb6ca1c876b49539b1..e0adee79dfd934f43aae4527d8701a0ebe4082d6 100644 (file)
@@ -256,7 +256,7 @@ static int eap_mschapv2_compose(rlm_eap_mschapv2_t const *inst, request_t *reque
                 */
                memcpy((eap_round->request->type.data + 4), reply->vp_strvalue + 1, reply->vp_length - 1);
        } else {
-               RERROR("Internal sanity check failed");
+               RERROR("%s: Internal sanity check failed", __FUNCTION__);
                return -1;
        }
 
index 160e3b38a272e248ca95b377a56c5817d7c3aed9..c5518512082580d82c8839e63a1bb8bb55bcd051 100644 (file)
@@ -435,7 +435,7 @@ static ssize_t encode_option_data(fr_dbuff_t *dbuff,
                        break;
 
                default:
-                       fr_strerror_printf("Internal sanity check failed");
+                       fr_strerror_printf("%s: Internal sanity check failed", __FUNCTION__);
                        return -1;
                }
        }
index 98ebe4c1fd29f718443666b4dda7487431a782fa..07beec806678d7965c4a525789a58fa6aa300d6b 100644 (file)
@@ -415,7 +415,7 @@ static ssize_t encode_option_data(fr_dbuff_t *dbuff,
                        break;
 
                default:
-                       fr_strerror_printf("Internal sanity check failed");
+                       fr_strerror_printf("%s: Internal sanity check failed", __FUNCTION__);
                        return -1;
                }
        }
index 63c484119d6fa331ea3c9296d91dcd9c1d0699ee..51f0281e46a9937051eb55245bb40455ded04655 100644 (file)
@@ -264,7 +264,7 @@ static ssize_t encode_option_data(fr_dbuff_t *dbuff,
                        break;
 
                default:
-                       fr_strerror_printf("Internal sanity check failed");
+                       fr_strerror_printf("%s: Internal sanity check failed", __FUNCTION__);
                        return -1;
                }
        }
index 4f4114de0db7094dcf1d2f0f9ebd56b9697d47f4..7e44c940d7ef8565d3c8fbf57f512255a06af695 100644 (file)
@@ -309,7 +309,7 @@ int fr_radius_decode_tlv_ok(uint8_t const *data, size_t length, size_t dv_type,
                        break;
 
                default:
-                       fr_strerror_const("Internal sanity check failed");
+                       fr_strerror_printf("%s: Internal sanity check failed", __FUNCTION__);
                        return -1;
                }
 
@@ -329,7 +329,7 @@ int fr_radius_decode_tlv_ok(uint8_t const *data, size_t length, size_t dv_type,
 
 
                default:
-                       fr_strerror_const("Internal sanity check failed");
+                       fr_strerror_printf("%s: Internal sanity check failed", __FUNCTION__);
                        return -1;
                }