diff options
author | Michal Ratajsky <[email protected]> | 2016-01-04 20:31:14 +0100 |
---|---|---|
committer | Michal Ratajsky <[email protected]> | 2016-01-04 20:31:14 +0100 |
commit | 9772797c31ebed2417b42a9389caae1b16847e86 (patch) | |
tree | 0257271d6f8387ce89984bf8341b11186381c8d5 /backends/oss/oss-device.c | |
parent | d32ca3f420d036cd750fc1aad7f95da40559cc5d (diff) | |
download | libmatemixer-9772797c31ebed2417b42a9389caae1b16847e86.tar.bz2 libmatemixer-9772797c31ebed2417b42a9389caae1b16847e86.tar.xz |
Improve error checking in many places
Diffstat (limited to 'backends/oss/oss-device.c')
-rw-r--r-- | backends/oss/oss-device.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/backends/oss/oss-device.c b/backends/oss/oss-device.c index e89e6e8..70f46e6 100644 --- a/backends/oss/oss-device.c +++ b/backends/oss/oss-device.c @@ -274,18 +274,26 @@ oss_device_new (const gchar *name, gint fd) { OssDevice *device; + gint newfd; g_return_val_if_fail (name != NULL, NULL); g_return_val_if_fail (label != NULL, NULL); g_return_val_if_fail (path != NULL, NULL); + newfd = dup (fd); + if (newfd == -1) { + g_warning ("Failed to duplicate file descriptor: %s", + g_strerror (errno)); + return NULL; + } + device = g_object_new (OSS_TYPE_DEVICE, "name", name, "label", label, "icon", OSS_DEVICE_ICON, NULL); - device->priv->fd = dup (fd); + device->priv->fd = newfd; device->priv->path = g_strdup (path); return device; @@ -584,6 +592,8 @@ read_mixer_devices (OssDevice *device) device->priv->fd, i, stereo); + if G_UNLIKELY (control == NULL) + continue; if (oss_stream_has_controls (stream) == FALSE) { const gchar *name = |