summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuho Hämäläinen <jusa@hilvi.org>2016-04-26 16:11:44 +0300
committerTanu Kaskinen <tanuk@iki.fi>2016-04-29 15:52:51 +0300
commit1a1d5086ade973a23872ac1cd42cd9d36943b71c (patch)
tree5a0bb03f02d335b1a27334467c114f0d1eca955c
parentd1730ab65a5f769ef135e79f2d33a0a4ec47255e (diff)
downloadpulseaudio-1a1d5086ade973a23872ac1cd42cd9d36943b71c.tar.gz
stream-restore: With dbus-proto fix segfault if e->device is NULL.
If first part of test is false and e->device is NULL pa_streq will segfault. Fix by using pa_safe_streq, which checks strings for NULL before doing strcmp.
-rw-r--r--src/modules/module-stream-restore.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c
index 37555a807..d1c2597e5 100644
--- a/src/modules/module-stream-restore.c
+++ b/src/modules/module-stream-restore.c
@@ -645,7 +645,7 @@ static void handle_add_entry(DBusConnection *conn, DBusMessage *msg, void *userd
e->channel_map = map;
e->volume_valid = !!map.channels;
- device_updated = (e->device_valid != !!device[0]) || !pa_streq(e->device, device);
+ device_updated = (e->device_valid != !!device[0]) || !pa_safe_streq(e->device, device);
pa_xfree(e->device);
e->device = pa_xstrdup(device);
e->device_valid = !!device[0];
@@ -757,7 +757,7 @@ static void handle_entry_set_device(DBusConnection *conn, DBusMessage *msg, DBus
pa_assert_se(e = entry_read(de->userdata, de->entry_name));
- updated = (e->device_valid != !!device[0]) || !pa_streq(e->device, device);
+ updated = (e->device_valid != !!device[0]) || !pa_safe_streq(e->device, device);
if (updated) {
pa_xfree(e->device);