From 9772797c31ebed2417b42a9389caae1b16847e86 Mon Sep 17 00:00:00 2001 From: Michal Ratajsky Date: Mon, 4 Jan 2016 20:31:14 +0100 Subject: Improve error checking in many places --- backends/oss/oss-backend.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'backends/oss/oss-backend.c') diff --git a/backends/oss/oss-backend.c b/backends/oss/oss-backend.c index 70b32be..9726570 100644 --- a/backends/oss/oss-backend.c +++ b/backends/oss/oss-backend.c @@ -298,7 +298,7 @@ read_devices (OssBackend *oss) for (i = 0; i < OSS_MAX_DEVICES; i++) { gchar *path; - gboolean added_current = FALSE; + gboolean added_current; path = g_strdup_printf ("/dev/mixer%i", i); @@ -333,6 +333,8 @@ read_device (OssBackend *oss, const gchar *path, gboolean *added) gchar *bname; gchar *label; + *added = FALSE; + fd = g_open (path, O_RDWR, 0); if (fd == -1) { if (errno != ENOENT && errno != ENXIO) @@ -360,11 +362,13 @@ read_device (OssBackend *oss, const gchar *path, gboolean *added) close (fd); - if ((*added = oss_device_open (device)) == TRUE) - add_device (oss, device); - else - g_object_unref (device); - + if G_LIKELY (device != NULL) { + *added = oss_device_open (device); + if (*added == TRUE) + add_device (oss, device); + else + g_object_unref (device); + } return *added; } -- cgit v1.2.1