return 0;
}
-
-static syscommon_plugin_backend_sessiond_funcs plugin_funcs = {
- .sessiond_initialize = sessiond_initialize,
- .sessiond_deinitialize = sessiond_deinitialize,
- .sessiond_subsession_changed = sessiond_subsession_changed,
- .sessiond_subsession_added = sessiond_subsession_added,
- .sessiond_subsession_removed = sessiond_subsession_removed,
-};
-
static int sessiond_init(void **data)
{
- *data = (void *)&plugin_funcs;
+ if (!data) {
+ LOGE("Invalid parameter, data is NULL");
+ return -EINVAL;
+ }
+
+ syscommon_plugin_backend_sessiond_funcs *const plugin_funcs = *((syscommon_plugin_backend_sessiond_funcs **)data);
+ if (!plugin_funcs) {
+ LOGE("Invalid parameter, *data (plugin_funcs) is NULL");
+ return -EINVAL;
+ }
+
+ *plugin_funcs = (syscommon_plugin_backend_sessiond_funcs) {
+ .sessiond_initialize = sessiond_initialize,
+ .sessiond_deinitialize = sessiond_deinitialize,
+ .sessiond_subsession_changed = sessiond_subsession_changed,
+ .sessiond_subsession_added = sessiond_subsession_added,
+ .sessiond_subsession_removed = sessiond_subsession_removed,
+ };
+
return 0;
}