[arch-commits] Commit in bluez/trunk (2 files)

Andreas Radke andyrtr at archlinux.org
Mon Feb 8 11:48:09 UTC 2021


    Date: Monday, February 8, 2021 @ 11:48:09
  Author: andyrtr
Revision: 407647

upgpkg: bluez 5.55-2: fix one segfault - FS#68671

Added:
  bluez/trunk/fix_crash_when_SEP_codec_has_not_been_initialized.patch
Modified:
  bluez/trunk/PKGBUILD

---------------------------------------------------------+
 PKGBUILD                                                |   12 ++-
 fix_crash_when_SEP_codec_has_not_been_initialized.patch |   45 ++++++++++++++
 2 files changed, 53 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2021-02-08 11:11:38 UTC (rev 407646)
+++ PKGBUILD	2021-02-08 11:48:09 UTC (rev 407647)
@@ -5,22 +5,26 @@
 pkgbase=bluez
 pkgname=('bluez' 'bluez-utils' 'bluez-libs' 'bluez-cups' 'bluez-hid2hci' 'bluez-plugins')
 pkgver=5.55
-pkgrel=1
+pkgrel=2
 url="http://www.bluez.org/"
 arch=('x86_64')
 license=('GPL2')
 makedepends=('dbus' 'libical' 'systemd' 'alsa-lib' 'json-c' 'ell')
 source=(https://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.{xz,sign}
+        fix_crash_when_SEP_codec_has_not_been_initialized.patch
         bluetooth.modprobe)
 # see https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc
 sha256sums=('8863717113c4897e2ad3271fc808ea245319e6fd95eed2e934fae8e0894e9b88'
             'SKIP'
+            'bc0a37ebea3f7e14d23a3a49964ee189bf4f79b96f839c754106dc73a7dfb6e9'
             '46c021be659c9a1c4e55afd04df0c059af1f3d98a96338236412e449bf7477b4')
 validpgpkeys=('E932D120BC2AEC444E558F0106CA9F5D1DCF2659') # Marcel Holtmann <marcel at holtmann.org>
 
-#prepare() {
-#  cd "${pkgname}"-${pkgver}
-#}
+prepare() {
+  cd "${pkgname}"-${pkgver}
+  # FS#68671 - fix a segfault
+  patch -Np1 -i ../fix_crash_when_SEP_codec_has_not_been_initialized.patch
+}
 
 build() {
   cd "${pkgname}"-${pkgver}

Added: fix_crash_when_SEP_codec_has_not_been_initialized.patch
===================================================================
--- fix_crash_when_SEP_codec_has_not_been_initialized.patch	                        (rev 0)
+++ fix_crash_when_SEP_codec_has_not_been_initialized.patch	2021-02-08 11:48:09 UTC (rev 407647)
@@ -0,0 +1,45 @@
+From 326d70edd99c3f21cf299dba55214e2c8957e622 Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz at intel.com>
+Date: Mon, 23 Nov 2020 10:20:06 -0800
+Subject: [PATCH] a2dp: Fix crash when SEP codec has not been initialized
+
+If SEP has not been properly discovered avdtp_get_codec may return NULL
+thus causing crashes such as:
+
+https://github.com/bluez/bluez/issues/57
+---
+ profiles/audio/a2dp.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c
+index 59d11a0aa..f1e4fa990 100644
+--- a/profiles/audio/a2dp.c
++++ b/profiles/audio/a2dp.c
+@@ -1887,8 +1887,8 @@ static void register_remote_sep(void *data, void *user_data)
+ 				sep, remote_sep_free) == FALSE) {
+ 		error("Could not register remote sep %s", sep->path);
+ 		free(sep->path);
+-		sep->path = NULL;
+-		goto done;
++		free(sep);
++		return;
+ 	}
+ 
+ 	DBG("Found remote SEP: %s", sep->path);
+@@ -2627,10 +2627,15 @@ static void store_remote_sep(void *data, void *user_data)
+ 	GKeyFile *key_file = user_data;
+ 	char seid[4], value[256];
+ 	struct avdtp_service_capability *service = avdtp_get_codec(sep->sep);
+-	struct avdtp_media_codec_capability *codec = (void *) service->data;
++	struct avdtp_media_codec_capability *codec;
+ 	unsigned int i;
+ 	ssize_t offset;
+ 
++	if (!service)
++		return;
++
++	codec = (void *) service->data;
++
+ 	sprintf(seid, "%02hhx", avdtp_get_seid(sep->sep));
+ 
+ 	offset = sprintf(value, "%02hhx:%02hhx:%02hhx:",


More information about the arch-commits mailing list