]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
more stupid const const stupid
authorAlan T. DeKok <aland@freeradius.org>
Fri, 8 Sep 2017 00:04:50 +0000 (20:04 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 8 Sep 2017 00:04:50 +0000 (20:04 -0400)
src/include/talloc.h
src/lib/util/dict.c
src/lib/util/pair.c
src/lib/util/value.c
src/modules/proto_radius/proto_radius.c
src/modules/proto_radius/proto_radius_udp.c
src/modules/rlm_radius/rlm_radius.c
src/modules/rlm_radius/rlm_radius_udp.c

index 8a9bc214a36a51d0e11650d7c91b6fcb54b5c290..af4645c5c4f76f3499630e26edce3758fc024b9c 100644 (file)
@@ -41,4 +41,15 @@ void         **talloc_array_null_terminate(void **array);
 
 void           **talloc_array_null_strip(void **array);
 
+/*
+ *     talloc portability issues.  'const' is not part of the talloc
+ *     type, but it is part of the pointer type.  But only if
+ *     talloc_get_type_abort() is just a cast.
+ */
+#ifndef NDEBUG
+#define talloc_get_type_abort_const talloc_get_type_abort
+#else
+#define talloc_get_type_abort_const(ptr, type) (const type *)(ptr)
+#endif
+
 #endif
index c9f6616b02357e670a48e025d0459935b9a03998..33b2f03c0ef86f79f1f32e8ec8a6d5e15afbd864 100644 (file)
@@ -4323,9 +4323,7 @@ void fr_dict_verify(char const *file, int line, fr_dict_attr_t const *da)
                if (!fr_cond_assert(0)) fr_exit_now(1);
        }
 
-#ifndef NDEBUG
-       (void) talloc_get_type_abort(da, fr_dict_attr_t);
-#endif
+       (void) talloc_get_type_abort_const(da, fr_dict_attr_t);
 
        if ((!da->flags.is_root) && (da->depth == 0)) {
                FR_FAULT_LOG("CONSISTENCY CHECK FAILED %s[%u]: fr_dict_attr_t %s vendor: %i, attr %i: "
@@ -4343,11 +4341,9 @@ void fr_dict_verify(char const *file, int line, fr_dict_attr_t const *da)
                if (!fr_cond_assert(0)) fr_exit_now(1);
        }
 
-#ifndef NDEBUG
        for (da_p = da; da_p; da_p = da_p->next) {
-               (void) talloc_get_type_abort(da_p, fr_dict_attr_t);
+               (void) talloc_get_type_abort_const(da_p, fr_dict_attr_t);
        }
-#endif
 
        for (i = da->depth, da_p = da; (i >= 0) && da; i--, da_p = da_p->parent) {
                if (i != (int)da_p->depth) {
index 43730e8d0f82de9a04c1cdca4a60b62aae09ad4e..6366cab296f259939da46566db72599c5a1efc07 100644 (file)
@@ -2650,9 +2650,7 @@ inline void fr_pair_verify(char const *file, int line, VALUE_PAIR const *vp)
                if (!fr_cond_assert(0)) fr_exit_now(1);
        }
 
-#ifndef NDEBUG
-       (void) talloc_get_type_abort(vp, VALUE_PAIR);
-#endif
+       (void) talloc_get_type_abort_const(vp, VALUE_PAIR);
 
        if (!vp->da) {
                FR_FAULT_LOG("CONSISTENCY CHECK FAILED %s[%u]: VALUE_PAIR da pointer was NULL", file, line);
@@ -2765,9 +2763,7 @@ inline void fr_pair_verify(char const *file, int line, VALUE_PAIR const *vp)
        }
 
        if (vp->da->flags.is_unknown) {
-#ifndef NDEBUG
-               (void) talloc_get_type_abort(vp->da, fr_dict_attr_t);
-#endif
+               (void) talloc_get_type_abort_const(vp->da, fr_dict_attr_t);
        } else {
                fr_dict_attr_t const *da;
 
index 5fdcec0f7a4c5bd9923cdc578555e053e5ec95e8..42fec15dc6dc3886daaf829dd7d531410f6d5ebf 100644 (file)
@@ -2524,9 +2524,7 @@ int fr_value_box_strdup_buffer_shallow(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_
 {
        size_t  len;
 
-#ifndef NDEBUG
-       (void) talloc_get_type_abort(src, char);
-#endif
+       (void) talloc_get_type_abort_const(src, char);
 
        len = talloc_array_length(src);
        if ((len == 1) || (src[len - 1] != '\0')) {
@@ -2621,9 +2619,7 @@ int fr_value_box_memsteal(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_dict_attr_t c
 {
        uint8_t const   *bin;
 
-#ifndef NDEBUG
-       (void) talloc_get_type_abort(src, uint8_t);
-#endif
+       (void) talloc_get_type_abort_const(src, uint8_t);
 
        bin = talloc_steal(ctx, src);
        if (!bin) {
index 4209d5a85384474195ea78bcc4db14e1f6c7d3a6..fd167b0e9c8a57abd0be181dc95eaf36f408db42 100644 (file)
@@ -166,7 +166,7 @@ static int transport_parse(TALLOC_CTX *ctx, void *out, CONF_ITEM *ci, UNUSED CON
  */
 static int mod_decode(void const *instance, REQUEST *request, uint8_t *const data, size_t data_len)
 {
-       proto_radius_t const *inst = talloc_get_type_abort(instance, proto_radius_t);
+       proto_radius_t const *inst = talloc_get_type_abort_const(instance, proto_radius_t);
        RADCLIENT *client;
 
        rad_assert(data[0] < FR_MAX_PACKET_CODE);
@@ -205,7 +205,7 @@ static ssize_t mod_encode(void const *instance, REQUEST *request, uint8_t *buffe
 {
        size_t len;
 
-       proto_radius_t const *inst = talloc_get_type_abort(instance, proto_radius_t);
+       proto_radius_t const *inst = talloc_get_type_abort_const(instance, proto_radius_t);
        RADCLIENT *client;
 
        /*
@@ -244,7 +244,7 @@ static ssize_t mod_encode(void const *instance, REQUEST *request, uint8_t *buffe
 
 static void mod_process_set(void const *instance, REQUEST *request)
 {
-       proto_radius_t const *inst = talloc_get_type_abort(instance, proto_radius_t);
+       proto_radius_t const *inst = talloc_get_type_abort_const(instance, proto_radius_t);
        fr_io_process_t process;
 
        rad_assert(request->packet->code != 0);
@@ -419,7 +419,7 @@ static int mod_bootstrap(void *instance, CONF_SECTION *conf)
         *      Bootstrap the process modules
         */
        while ((cp = cf_pair_find_next(conf, cp, "type"))) {
-               dl_t const             *module = talloc_get_type_abort(inst->process_submodule[i]->module, dl_t);
+               dl_t const             *module = talloc_get_type_abort_const(inst->process_submodule[i]->module, dl_t);
                fr_app_process_t const *app_process = (fr_app_process_t const *)module->common;
 
                if (app_process->bootstrap && (app_process->bootstrap(inst->process_submodule[i]->data,
index 6ec418fdd55b8c07fb4a74b729cf97e3214f149c..f83d2f2492f85104aa57c8109c90413df1fc677b 100644 (file)
@@ -182,7 +182,7 @@ static uint32_t priorities[FR_MAX_PACKET_CODE] = {
 
 static ssize_t mod_read(void const *instance, void **packet_ctx, fr_time_t **recv_time, uint8_t *buffer, size_t buffer_len, size_t *leftover, uint32_t *priority)
 {
-       proto_radius_udp_t const        *inst = talloc_get_type_abort(instance, proto_radius_udp_t);
+       proto_radius_udp_t const        *inst = talloc_get_type_abort_const(instance, proto_radius_udp_t);
 
        ssize_t                         data_size;
        size_t                          packet_len;
index 832e8019f6ae32ad7753cf397e7bfa5b23f26425..d6a491836a865df69aab3b53e8162ccbc01b91f3 100644 (file)
@@ -376,7 +376,7 @@ static int mod_link_free(rlm_radius_link_t *link)
 static void mod_radius_signal(REQUEST *request, void *instance, void *thread, void *ctx,
                              fr_state_action_t action)
 {
-       rlm_radius_t const *inst = talloc_get_type_abort(instance, rlm_radius_t);
+       rlm_radius_t const *inst = talloc_get_type_abort_const(instance, rlm_radius_t);
        rlm_radius_thread_t *t = talloc_get_type_abort(thread, rlm_radius_thread_t);
        rlm_radius_link_t *link = talloc_get_type_abort(ctx, rlm_radius_link_t);
 
index 028d24e3378cee6089137b8d0a00f1d019955580..250a95de1e54664469e8bca3beb8b337fe9dc282 100644 (file)
@@ -186,8 +186,8 @@ static void mod_clear_backlog(rlm_radius_udp_thread_t *t);
 
 static int conn_cmp(void const *one, void const *two)
 {
-       rlm_radius_udp_connection_t const *a = talloc_get_type_abort(one, rlm_radius_udp_connection_t);
-       rlm_radius_udp_connection_t const *b = talloc_get_type_abort(two, rlm_radius_udp_connection_t);
+       rlm_radius_udp_connection_t const *a = talloc_get_type_abort_const(one, rlm_radius_udp_connection_t);
+       rlm_radius_udp_connection_t const *b = talloc_get_type_abort_const(two, rlm_radius_udp_connection_t);
 
        if (timercmp(&a->mrs_time, &b->mrs_time, <)) return -1;
        if (timercmp(&a->mrs_time, &b->mrs_time, >)) return +1;