don't crash with missing libraries

This commit is contained in:
Wim Taymans 2021-02-23 17:48:29 +01:00
parent 217f93a317
commit 1f2cb7ac67
4 changed files with 15 additions and 2 deletions

View file

@ -207,8 +207,10 @@ int main(int argc, char *argv[])
rd_device_release(impl.device); rd_device_release(impl.device);
exit: exit:
pw_context_destroy(impl.context); if (impl.context)
pw_main_loop_destroy(impl.mainloop); pw_context_destroy(impl.context);
if (impl.mainloop)
pw_main_loop_destroy(impl.mainloop);
pw_deinit(); pw_deinit();

View file

@ -3002,6 +3002,10 @@ int main(int argc, char *argv[])
} }
data.loop = pw_main_loop_new(NULL); data.loop = pw_main_loop_new(NULL);
if (data.loop == NULL) {
fprintf(stderr, "Broken installation: %m\n");
return -1;
}
l = pw_main_loop_get_loop(data.loop); l = pw_main_loop_get_loop(data.loop);
pw_loop_add_signal(l, SIGINT, do_quit, &data); pw_loop_add_signal(l, SIGINT, do_quit, &data);
pw_loop_add_signal(l, SIGTERM, do_quit, &data); pw_loop_add_signal(l, SIGTERM, do_quit, &data);

View file

@ -240,6 +240,10 @@ int main(int argc, char *argv[])
data.opt_type = argv[optind++]; data.opt_type = argv[optind++];
data.loop = pw_main_loop_new(NULL); data.loop = pw_main_loop_new(NULL);
if (data.loop == NULL) {
fprintf(stderr, "can't create mainloop: %m\n");
return -1;
}
pw_loop_add_signal(pw_main_loop_get_loop(data.loop), SIGINT, do_quit, &data); pw_loop_add_signal(pw_main_loop_get_loop(data.loop), SIGINT, do_quit, &data);
pw_loop_add_signal(pw_main_loop_get_loop(data.loop), SIGTERM, do_quit, &data); pw_loop_add_signal(pw_main_loop_get_loop(data.loop), SIGTERM, do_quit, &data);

View file

@ -134,6 +134,9 @@ static void do_quit(void *userdata, int signal_number)
static int dump_filter(struct data *data) static int dump_filter(struct data *data)
{ {
data->loop = pw_main_loop_new(NULL); data->loop = pw_main_loop_new(NULL);
if (data->loop == NULL)
return -errno;
pw_loop_add_signal(pw_main_loop_get_loop(data->loop), SIGINT, do_quit, data); pw_loop_add_signal(pw_main_loop_get_loop(data->loop), SIGINT, do_quit, data);
pw_loop_add_signal(pw_main_loop_get_loop(data->loop), SIGTERM, do_quit, data); pw_loop_add_signal(pw_main_loop_get_loop(data->loop), SIGTERM, do_quit, data);