From 8723ccfa6ad431c07df566de648e2d9ecbcfa7c8 Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Sun, 15 Nov 2020 11:54:07 +0900 Subject: [PATCH] seq: check whether method argument for GError is available In Rules for use of GError, the check of arguments for GError may be preferable to avoid to unexpected function call. This commit adds the check. Reference: https://developer.gnome.org/glib/stable/glib-Error-Reporting.html Signed-off-by: Takashi Sakamoto --- src/seq/client-info.c | 4 ++ src/seq/event-cntr.c | 90 +++++++++++++++++++++++++++++++++++++++-- src/seq/query.c | 26 ++++++++++++ src/seq/remove-filter.c | 14 +++++++ src/seq/user-client.c | 45 +++++++++++++++++++++ 5 files changed, 176 insertions(+), 3 deletions(-) diff --git a/src/seq/client-info.c b/src/seq/client-info.c index e804a8c..40f3fbf 100644 --- a/src/seq/client-info.c +++ b/src/seq/client-info.c @@ -224,6 +224,8 @@ void alsaseq_client_info_set_event_filter(ALSASeqClientInfo *self, g_return_if_fail(ALSASEQ_IS_CLIENT_INFO(self)); priv = alsaseq_client_info_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + memset(priv->info.event_filter, 0, sizeof(priv->info.event_filter)); if (event_types == NULL) @@ -262,6 +264,8 @@ void alsaseq_client_info_get_event_filter(ALSASeqClientInfo *self, g_return_if_fail(ALSASEQ_IS_CLIENT_INFO(self)); priv = alsaseq_client_info_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (event_types == NULL || event_type_count == NULL) { generate_error(error, EINVAL); return; diff --git a/src/seq/event-cntr.c b/src/seq/event-cntr.c index 82bd0cb..ea55040 100644 --- a/src/seq/event-cntr.c +++ b/src/seq/event-cntr.c @@ -92,12 +92,16 @@ static void alsaseq_event_cntr_init(ALSASeqEventCntr *self) */ ALSASeqEventCntr *alsaseq_event_cntr_new(guint count, GError **error) { - ALSASeqEventCntr *self = g_object_new(ALSASEQ_TYPE_EVENT_CNTR, NULL); - ALSASeqEventCntrPrivate *priv = - alsaseq_event_cntr_get_instance_private(self); + ALSASeqEventCntr *self; + ALSASeqEventCntrPrivate *priv; struct snd_seq_event *ev; int i; + g_return_val_if_fail(error == NULL || *error == NULL, NULL); + + self = g_object_new(ALSASEQ_TYPE_EVENT_CNTR, NULL); + priv = alsaseq_event_cntr_get_instance_private(self); + priv->length = sizeof(struct snd_seq_event) * count; priv->buf = g_malloc0(priv->length); @@ -227,6 +231,8 @@ void alsaseq_event_cntr_calculate_pool_consumption(ALSASeqEventCntr *self, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + *cells = 0; total = 0; event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); @@ -259,6 +265,8 @@ void alsaseq_event_cntr_get_event_type(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -290,6 +298,8 @@ void alsaseq_event_cntr_set_event_type(ALSASeqEventCntr *self, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -321,6 +331,8 @@ void alsaseq_event_cntr_get_tstamp_mode(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -352,6 +364,8 @@ void alsaseq_event_cntr_set_tstamp_mode(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -384,6 +398,8 @@ void alsaseq_event_cntr_get_time_mode(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -415,6 +431,8 @@ void alsaseq_event_cntr_set_time_mode(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -447,6 +465,8 @@ void alsaseq_event_cntr_get_length_mode(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -478,6 +498,8 @@ void alsaseq_event_cntr_get_priority_mode( g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -509,6 +531,8 @@ void alsaseq_event_cntr_set_priority_mode( g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -540,6 +564,8 @@ void alsaseq_event_cntr_get_tag(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -570,6 +596,8 @@ void alsaseq_event_cntr_set_tag(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -601,6 +629,8 @@ void alsaseq_event_cntr_get_queue_id(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -632,6 +662,8 @@ void alsaseq_event_cntr_set_queue_id(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -663,6 +695,8 @@ void alsaseq_event_cntr_get_tstamp(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -694,6 +728,8 @@ void alsaseq_event_cntr_set_tstamp(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -724,6 +760,8 @@ void alsaseq_event_cntr_get_dst(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -754,6 +792,8 @@ void alsaseq_event_cntr_set_dst(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -784,6 +824,8 @@ void alsaseq_event_cntr_get_src(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -814,6 +856,8 @@ void alsaseq_event_cntr_set_src(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -923,6 +967,8 @@ void alsaseq_event_cntr_get_note_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -952,6 +998,8 @@ void alsaseq_event_cntr_set_note_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -985,6 +1033,8 @@ void alsaseq_event_cntr_get_ctl_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1014,6 +1064,8 @@ void alsaseq_event_cntr_set_ctl_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1047,6 +1099,8 @@ void alsaseq_event_cntr_get_byte_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1076,6 +1130,8 @@ void alsaseq_event_cntr_set_byte_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1109,6 +1165,8 @@ void alsaseq_event_cntr_get_quadlet_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -1139,6 +1197,8 @@ void alsaseq_event_cntr_set_quadlet_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); @@ -1175,6 +1235,8 @@ void alsaseq_event_cntr_get_blob_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1220,6 +1282,8 @@ void alsaseq_event_cntr_set_blob_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1249,6 +1313,8 @@ void alsaseq_event_cntr_get_queue_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1278,6 +1344,8 @@ void alsaseq_event_cntr_set_queue_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1311,6 +1379,8 @@ void alsaseq_event_cntr_get_tstamp_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1340,6 +1410,8 @@ void alsaseq_event_cntr_set_tstamp_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1373,6 +1445,8 @@ void alsaseq_event_cntr_get_addr_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1402,6 +1476,8 @@ void alsaseq_event_cntr_set_addr_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1435,6 +1511,8 @@ void alsaseq_event_cntr_get_connect_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1464,6 +1542,8 @@ void alsaseq_event_cntr_set_connect_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1497,6 +1577,8 @@ void alsaseq_event_cntr_get_result_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { @@ -1526,6 +1608,8 @@ void alsaseq_event_cntr_set_result_data(ALSASeqEventCntr *self, gsize index, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self)); priv = alsaseq_event_cntr_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + event_iterator_init(&iter, priv->buf, priv->length, priv->allocated); ev = event_iterator_find(&iter, index); if (ev == NULL) { diff --git a/src/seq/query.c b/src/seq/query.c index ae938a7..851fc4b 100644 --- a/src/seq/query.c +++ b/src/seq/query.c @@ -39,6 +39,8 @@ void alsaseq_get_seq_sysname(gchar **sysname, GError **error) struct udev_device *dev; const char *name; + g_return_if_fail(error == NULL || *error == NULL); + ctx = udev_new(); if (ctx == NULL) { generate_error(error, errno); @@ -81,6 +83,8 @@ void alsaseq_get_seq_devnode(gchar **devnode, GError **error) struct udev_device *dev; const char *node; + g_return_if_fail(error == NULL || *error == NULL); + ctx = udev_new(); if (ctx == NULL) { generate_error(error, errno); @@ -124,6 +128,8 @@ void alsaseq_get_system_info(ALSASeqSystemInfo **system_info, GError **error) struct snd_seq_system_info *info; int fd; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -180,6 +186,8 @@ void alsaseq_get_client_id_list(guint8 **entries, gsize *entry_count, struct snd_seq_client_info client_info = {0}; int fd; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -258,6 +266,8 @@ void alsaseq_get_client_info(guint8 client_id, ALSASeqClientInfo **client_info, struct snd_seq_client_info *info; int fd; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -312,6 +322,8 @@ void alsaseq_get_port_id_list(guint8 client_id, guint8 **entries, struct snd_seq_port_info port_info = {0}; int fd; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -380,6 +392,8 @@ void alsaseq_get_port_info(guint8 client_id, guint8 port_id, struct snd_seq_port_info *info; int fd; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -428,6 +442,8 @@ void alsaseq_get_client_pool(guint8 client_id, ALSASeqClientPool **client_pool, int fd; struct snd_seq_client_pool *pool; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -490,6 +506,8 @@ void alsaseq_get_subscription_list(const ALSASeqAddr *addr, unsigned int count; unsigned int index; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -567,6 +585,8 @@ void alsaseq_get_queue_id_list(guint8 **entries, gsize *entry_count, unsigned int index; int i; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -636,6 +656,8 @@ void alsaseq_get_queue_info_by_id(guint8 queue_id, ALSASeqQueueInfo **queue_info char *devnode; int fd; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -681,6 +703,8 @@ void alsaseq_get_queue_info_by_name(const gchar *name, char *devnode; int fd; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -727,6 +751,8 @@ void alsaseq_get_queue_status(guint8 queue_id, char *devnode; int fd; + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; diff --git a/src/seq/remove-filter.c b/src/seq/remove-filter.c index eeee419..4991dd9 100644 --- a/src/seq/remove-filter.c +++ b/src/seq/remove-filter.c @@ -42,6 +42,8 @@ ALSASeqRemoveFilter *alsaseq_remove_filter_new_with_dest_addr( { struct snd_seq_remove_events filter; + g_return_val_if_fail(error == NULL || *error == NULL, NULL); + if (inout & ~(SNDRV_SEQ_REMOVE_INPUT | SNDRV_SEQ_REMOVE_OUTPUT)) { generate_error(error, EINVAL); return NULL; @@ -71,6 +73,8 @@ ALSASeqRemoveFilter *alsaseq_remove_filter_new_with_note_channel( { struct snd_seq_remove_events filter; + g_return_val_if_fail(error == NULL || *error == NULL, NULL); + if (inout & ~(SNDRV_SEQ_REMOVE_INPUT | SNDRV_SEQ_REMOVE_OUTPUT)) { generate_error(error, EINVAL); return NULL; @@ -100,6 +104,8 @@ ALSASeqRemoveFilter *alsaseq_remove_filter_new_with_event_type( { struct snd_seq_remove_events filter; + g_return_val_if_fail(error == NULL || *error == NULL, NULL); + if (inout & ~(SNDRV_SEQ_REMOVE_INPUT | SNDRV_SEQ_REMOVE_OUTPUT)) { generate_error(error, EINVAL); return NULL; @@ -128,6 +134,8 @@ ALSASeqRemoveFilter *alsaseq_remove_filter_new_with_note( { struct snd_seq_remove_events filter; + g_return_val_if_fail(error == NULL || *error == NULL, NULL); + if (inout & ~(SNDRV_SEQ_REMOVE_INPUT | SNDRV_SEQ_REMOVE_OUTPUT)) { generate_error(error, EINVAL); return NULL; @@ -156,6 +164,8 @@ ALSASeqRemoveFilter *alsaseq_remove_filter_new_with_tag( { struct snd_seq_remove_events filter; + g_return_val_if_fail(error == NULL || *error == NULL, NULL); + if (inout & ~(SNDRV_SEQ_REMOVE_INPUT | SNDRV_SEQ_REMOVE_OUTPUT)) { generate_error(error, EINVAL); return NULL; @@ -188,6 +198,8 @@ ALSASeqRemoveFilter *alsaseq_remove_filter_new_with_tick_time( { struct snd_seq_remove_events filter; + g_return_val_if_fail(error == NULL || *error == NULL, NULL); + if (inout & ~(SNDRV_SEQ_REMOVE_INPUT | SNDRV_SEQ_REMOVE_OUTPUT)) { generate_error(error, EINVAL); return NULL; @@ -225,6 +237,8 @@ ALSASeqRemoveFilter *alsaseq_remove_filter_new_with_real_time( { struct snd_seq_remove_events filter; + g_return_val_if_fail(error == NULL || *error == NULL, NULL); + if (inout & ~(SNDRV_SEQ_REMOVE_INPUT | SNDRV_SEQ_REMOVE_OUTPUT)) { generate_error(error, EINVAL); return NULL; diff --git a/src/seq/user-client.c b/src/seq/user-client.c index b7df3d6..07aedb8 100644 --- a/src/seq/user-client.c +++ b/src/seq/user-client.c @@ -161,6 +161,8 @@ void alsaseq_user_client_open(ALSASeqUserClient *self, gint open_flag, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_get_seq_devnode(&devnode, error); if (*error != NULL) return; @@ -213,6 +215,8 @@ void alsaseq_user_client_get_protocol_version(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (priv->fd < 0) { generate_error(error, ENXIO); return; @@ -243,6 +247,8 @@ void alsaseq_user_client_set_info(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_CLIENT_INFO(client_info)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_client_info_refer_private(client_info, &info); info->client = priv->client_id; info->type = USER_CLIENT; @@ -273,6 +279,8 @@ void alsaseq_user_client_get_info(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_CLIENT_INFO(*client_info)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_client_info_refer_private(*client_info, &info); info->client = priv->client_id; if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_GET_CLIENT_INFO, info) < 0) @@ -301,6 +309,8 @@ void alsaseq_user_client_create_port(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_PORT_INFO(*port_info)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_port_info_refer_private(*port_info, &info); info->addr.client = priv->client_id; @@ -328,6 +338,7 @@ void alsaseq_user_client_create_port_at(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); g_return_if_fail(ALSASEQ_IS_PORT_INFO(*port_info)); + g_return_if_fail(error == NULL || *error == NULL); seq_port_info_refer_private(*port_info, &info); @@ -360,6 +371,8 @@ void alsaseq_user_client_update_port(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_PORT_INFO(port_info)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_port_info_refer_private(port_info, &info); info->addr.client = priv->client_id; @@ -389,6 +402,8 @@ void alsaseq_user_client_delete_port(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + info.addr.client = priv->client_id; info.addr.port = port_id; if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_DELETE_PORT, &info) < 0) @@ -417,6 +432,8 @@ void alsaseq_user_client_set_pool(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_CLIENT_POOL(client_pool)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_client_pool_refer_private(client_pool, &pool); pool->client = priv->client_id; if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_SET_CLIENT_POOL, pool) < 0) @@ -446,6 +463,8 @@ void alsaseq_user_client_get_pool(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_CLIENT_POOL(*client_pool)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_client_pool_refer_private(*client_pool, &pool); pool->client = priv->client_id; if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_GET_CLIENT_POOL, pool) < 0) @@ -478,6 +497,8 @@ void alsaseq_user_client_schedule_event(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(ev_cntr)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + alsaseq_event_cntr_count_events(ev_cntr, &total); if (count > total) { generate_error(error, ENOBUFS); @@ -578,6 +599,8 @@ void alsaseq_user_client_create_source(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (priv->fd < 0) { generate_error(error, ENXIO); return; @@ -626,6 +649,8 @@ void alsaseq_user_client_operate_subscription(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_SUBSCRIBE_DATA(subs_data)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_subscribe_data_refer_private(subs_data, &data); if (establish) @@ -660,6 +685,8 @@ void alsaseq_user_client_create_queue(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_QUEUE_INFO(*queue_info)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_queue_info_refer_private(*queue_info, &info); if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_CREATE_QUEUE, info) < 0) @@ -686,6 +713,8 @@ void alsaseq_user_client_delete_queue(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + info.queue = (int)queue_id; info.owner = priv->client_id; if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_DELETE_QUEUE, &info) < 0) @@ -714,6 +743,8 @@ void alsaseq_user_client_update_queue(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_QUEUE_INFO(queue_info)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_queue_info_refer_private(queue_info, &info); if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_SET_QUEUE_INFO, info) < 0) @@ -743,6 +774,8 @@ void alsaseq_user_client_get_queue_usage(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + data.queue = (int)queue_id; if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT, &data) < 0) { generate_error(error, errno); @@ -775,6 +808,8 @@ void alsaseq_user_client_set_queue_usage(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + data.queue = (int)queue_id; data.client = priv->client_id; data.used = use; @@ -807,6 +842,8 @@ void alsaseq_user_client_set_queue_tempo(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_QUEUE_TEMPO(queue_tempo)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_queue_tempo_refer_private(queue_tempo, &tempo); tempo->queue = queue_id; if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO, tempo) < 0) @@ -837,6 +874,8 @@ void alsaseq_user_client_get_queue_tempo(ALSASeqUserClient *self, g_return_if_fail(queue_tempo != NULL); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + *queue_tempo = g_object_new(ALSASEQ_TYPE_QUEUE_TEMPO, NULL); seq_queue_tempo_refer_private(*queue_tempo, &tempo); @@ -872,6 +911,8 @@ void alsaseq_user_client_set_queue_timer(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_QUEUE_TIMER(queue_timer)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + seq_queue_timer_refer_private(queue_timer, &timer); switch (timer->type) { @@ -914,6 +955,8 @@ void alsaseq_user_client_get_queue_timer(ALSASeqUserClient *self, g_return_if_fail(queue_timer != NULL); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + *queue_timer = g_object_new(ALSASEQ_TYPE_QUEUE_TIMER, NULL); seq_queue_timer_refer_private(*queue_timer, &timer); @@ -957,6 +1000,8 @@ void alsaseq_user_client_remove_events(ALSASeqUserClient *self, g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self)); priv = alsaseq_user_client_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_REMOVE_EVENTS, filter) < 0) { generate_error(error, errno); return; -- 2.47.3