[PATCH] a2dp: Fix not checking for asprintf return value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



asprintf may return -1 on menmory allocation failure or other error leaving
sep->path with undefined content.

  CC       profiles/audio/bluetoothd-media.o
profiles/audio/a2dp.c: In function ‘register_remote_sep’:
profiles/audio/a2dp.c:1775:2: error: ignoring return value of ‘asprintf’,
    declared with attribute warn_unused_result [-Werror=unused-result]
  asprintf(&sep->path, "%s/sep%d", device_get_path(chan->device),
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        avdtp_get_seid(rsep));
        ~~~~~~~~~~~~~~~~~~~~~
---
 profiles/audio/a2dp.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c
index 8f141739c..481fd7861 100644
--- a/profiles/audio/a2dp.c
+++ b/profiles/audio/a2dp.c
@@ -1772,8 +1772,9 @@ static void register_remote_sep(void *data, void *user_data)
 	if (!(g_dbus_get_flags() & G_DBUS_FLAG_ENABLE_EXPERIMENTAL))
 		goto done;
 
-	asprintf(&sep->path, "%s/sep%d", device_get_path(chan->device),
-							avdtp_get_seid(rsep));
+	if (asprintf(&sep->path, "%s/sep%d", device_get_path(chan->device),
+						avdtp_get_seid(rsep)) < 0 )
+		goto done;
 
 	if (g_dbus_register_interface(btd_get_dbus_connection(),
 				sep->path, MEDIA_ENDPOINT_INTERFACE,
-- 
2.20.1




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux