]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Fix dl_instance_find to take a const data pointer
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 18 Apr 2019 21:19:31 +0000 (17:19 -0400)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 18 Apr 2019 21:20:17 +0000 (17:20 -0400)
src/lib/server/dl.c
src/lib/server/dl.h

index eea9ace15d4f4d25e018750e099642234b12c4a3..7f9239208bfff22e63d15214de23a72fc037a3b1 100644 (file)
@@ -488,13 +488,15 @@ void dl_symbol_free_cb_unregister(char const *symbol, dl_free_t func)
 /** Lookup a dl_instance_t via instance data
  *
  */
-dl_instance_t const *dl_instance_find(void *data)
+dl_instance_t const *dl_instance_find(void const *data)
 {
-       dl_instance_t find = { .data = data };
+       void *mutable;
 
        DL_INIT_CHECK;
 
-       return rbtree_finddata(dl_loader->inst_tree, &find);
+       memcpy(&mutable, &data, sizeof(mutable));
+
+       return rbtree_finddata(dl_loader->inst_tree, &(dl_instance_t){ .data = mutable });
 }
 
 /** Allocate module instance data, and parse the module's configuration
index 02c8baa46f6362fad17953e7db42bf8b1ccd4611..1ccfe2dbc07f1fe72b8e042b730147e56050cdf7 100644 (file)
@@ -195,7 +195,7 @@ void                        *dl_by_name(char const *name);
 
 dl_t const             *dl_module(CONF_SECTION *conf, dl_t const *parent, char const *name, dl_type_t type);
 
-dl_instance_t const    *dl_instance_find(void *data);
+dl_instance_t const    *dl_instance_find(void const *data);
 
 void                   *dl_instance_symbol(dl_instance_t const *instance, char const *sym_name);