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-backend.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-backend.c')
-rw-r--r-- | backends/oss/oss-backend.c | 16 |
1 files changed, 10 insertions, 6 deletions
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; } |