modules: enforce equal library and compiler versions

For all the modules that include the private header we require that the
library and compiler versions match.

Otherwise we might end up poking into new or old fields that got moved or
changed in the private struct and crash.

See #3243
This commit is contained in:
Wim Taymans 2023-07-11 19:50:36 +02:00
parent ad71dd89a2
commit 697daeedf7
4 changed files with 12 additions and 0 deletions

View file

@ -3543,6 +3543,9 @@ jack_client_t * jack_client_open (const char *client_name,
strstr(pw_get_library_version(), "0.2") != NULL)
goto disabled;
if (!spa_streq(pw_get_library_version(), pw_get_headers_version()))
goto disabled;
return_val_if_fail(client_name != NULL, NULL);
client = calloc(1, sizeof(struct client));

View file

@ -163,6 +163,9 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
PW_LOG_TOPIC_INIT(mod_topic);
if (!spa_streq(pw_get_library_version(), pw_get_headers_version()))
return -ESTALE;
factory = pw_context_create_factory(context,
"client-node",
PW_TYPE_INTERFACE_ClientNode,

View file

@ -387,6 +387,9 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
NULL
};
if (!spa_streq(pw_get_library_version(), pw_get_headers_version()))
return -ESTALE;
PW_LOG_TOPIC_INIT(mod_topic);
impl = calloc(1, sizeof(struct impl));

View file

@ -1472,6 +1472,9 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
const struct pw_properties *props;
int res;
if (!spa_streq(pw_get_library_version(), pw_get_headers_version()))
return -ESTALE;
PW_LOG_TOPIC_INIT(mod_topic);
PW_LOG_TOPIC_INIT(mod_topic_connection);