summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Alff2021-06-16 21:16:50 -0400
committerTed Alff2021-06-16 21:16:50 -0400
commitff55ee2289c2d227c92439b2ce7c62a38b05f9b4 (patch)
treeb1f89822c26b82d738d10a59b9351d79787216e2
parentf12c5f9fa9c6bd023e5cbf38ecc254c7645c3631 (diff)
downloadaur-ff55ee2289c2d227c92439b2ce7c62a38b05f9b4.tar.gz
Version bump 5.59
-rw-r--r--.SRCINFO12
-rw-r--r--0001-rfkill-Fix-reading-from-rfkill-socket.patch83
-rw-r--r--PKGBUILD16
3 files changed, 102 insertions, 9 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b332722233b8..a783129965d8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = bluez-utils-compat
pkgdesc = Development and debugging utilities for the bluetooth protocol stack. Includes deprecated tools.
- pkgver = 5.58
+ pkgver = 5.59
pkgrel = 1
url = http://www.bluez.org/
arch = i686
@@ -17,18 +17,20 @@ pkgbase = bluez-utils-compat
makedepends = alsa-lib
makedepends = json-c
makedepends = ell
+ makedepends = python-docutils
depends = dbus
depends = systemd
depends = glib2
optdepends = ell: for btpclient
provides = bluez-hcidump
- provides = bluez-utils=5.58
+ provides = bluez-utils=5.59
provides = bluez-hcitool
conflicts = bluez-hcidump
conflicts = bluez-utils
conflicts = bluez-hcitool
- source = https://www.kernel.org/pub/linux/bluetooth/bluez-5.58.tar.xz
- sha256sums = c8065e75a5eb67236849ef68a354b1700540305a8c88ef0a0fd6288f19daf1f1
+ source = https://www.kernel.org/pub/linux/bluetooth/bluez-5.59.tar.xz
+ source = 0001-rfkill-Fix-reading-from-rfkill-socket.patch
+ sha256sums = 046b95b386d0bfb2a16311fe799d517ee7735045512d89902c4ed701db477316
+ sha256sums = befc9c56fa15fe276916d299e70901d09aedc25d5a29ee444e78fa76f297e72f
pkgname = bluez-utils-compat
-
diff --git a/0001-rfkill-Fix-reading-from-rfkill-socket.patch b/0001-rfkill-Fix-reading-from-rfkill-socket.patch
new file mode 100644
index 000000000000..1bcb6524f5bd
--- /dev/null
+++ b/0001-rfkill-Fix-reading-from-rfkill-socket.patch
@@ -0,0 +1,83 @@
+From 382646b490c1c336dd32f9186293616ceb4d808b Mon Sep 17 00:00:00 2001
+From: Benjamin Berg <bberg@redhat.com>
+Date: Mon, 3 May 2021 14:45:00 +0200
+Subject: [PATCH 1/2] rfkill: Fix reading from rfkill socket
+
+The kernel will always send exactly one event, but the size of the
+passed struct will depend on the length of the submitted read() and the
+kernel version. i.e. the interface can be extended and we need to expect
+for a read to be longer than expected if we ask for it.
+
+Fix this by only requesting the needed length and explicitly check the
+length against the V1 version of the structure to make the code a bit
+more future proof in case the internal copy of the struct is updated to
+contain new fields.
+---
+ src/rfkill.c | 24 +++++++++++-------------
+ 1 file changed, 11 insertions(+), 13 deletions(-)
+
+diff --git a/src/rfkill.c b/src/rfkill.c
+index ec9fcdfdd..2099c5ac5 100644
+--- a/src/rfkill.c
++++ b/src/rfkill.c
+@@ -53,12 +53,12 @@ struct rfkill_event {
+ uint8_t soft;
+ uint8_t hard;
+ };
++#define RFKILL_EVENT_SIZE_V1 8
+
+ static gboolean rfkill_event(GIOChannel *chan,
+ GIOCondition cond, gpointer data)
+ {
+- unsigned char buf[32];
+- struct rfkill_event *event = (void *) buf;
++ struct rfkill_event event = { 0 };
+ struct btd_adapter *adapter;
+ char sysname[PATH_MAX];
+ ssize_t len;
+@@ -69,34 +69,32 @@ static gboolean rfkill_event(GIOChannel *chan,
+
+ fd = g_io_channel_unix_get_fd(chan);
+
+- memset(buf, 0, sizeof(buf));
+-
+- len = read(fd, buf, sizeof(buf));
++ len = read(fd, &event, sizeof(event));
+ if (len < 0) {
+ if (errno == EAGAIN)
+ return TRUE;
+ return FALSE;
+ }
+
+- if (len != sizeof(struct rfkill_event))
++ if (len < RFKILL_EVENT_SIZE_V1)
+ return TRUE;
+
+ DBG("RFKILL event idx %u type %u op %u soft %u hard %u",
+- event->idx, event->type, event->op,
+- event->soft, event->hard);
++ event.idx, event.type, event.op,
++ event.soft, event.hard);
+
+- if (event->soft || event->hard)
++ if (event.soft || event.hard)
+ return TRUE;
+
+- if (event->op != RFKILL_OP_CHANGE)
++ if (event.op != RFKILL_OP_CHANGE)
+ return TRUE;
+
+- if (event->type != RFKILL_TYPE_BLUETOOTH &&
+- event->type != RFKILL_TYPE_ALL)
++ if (event.type != RFKILL_TYPE_BLUETOOTH &&
++ event.type != RFKILL_TYPE_ALL)
+ return TRUE;
+
+ snprintf(sysname, sizeof(sysname) - 1,
+- "/sys/class/rfkill/rfkill%u/name", event->idx);
++ "/sys/class/rfkill/rfkill%u/name", event.idx);
+
+ fd = open(sysname, O_RDONLY);
+ if (fd < 0)
+--
+2.31.1
diff --git a/PKGBUILD b/PKGBUILD
index 805e5e5a2c46..dd981f148d52 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,22 +6,30 @@
pkgname='bluez-utils-compat'
_pkgbase='bluez'
-pkgver=5.58
+pkgver=5.59
pkgrel=1
url="http://www.bluez.org/"
arch=('i686' 'x86_64' 'mips64el' 'armv6h' 'armv7h' 'arm' 'aarch64')
license=('GPL2')
pkgdesc="Development and debugging utilities for the bluetooth protocol stack. Includes deprecated tools."
depends=('dbus' 'systemd' 'glib2')
-makedepends=('dbus' 'libical' 'systemd' 'alsa-lib' 'json-c' 'ell')
+makedepends=('dbus' 'libical' 'systemd' 'alsa-lib' 'json-c' 'ell' 'python-docutils')
optdepends=('ell: for btpclient')
conflicts=('bluez-hcidump' 'bluez-utils' 'bluez-hcitool')
provides=('bluez-hcidump' "bluez-utils=${pkgver}" 'bluez-hcitool')
-source=(https://www.kernel.org/pub/linux/bluetooth/"${_pkgbase}-${pkgver}".tar.xz) #{xz,sign}
+source=(https://www.kernel.org/pub/linux/bluetooth/"${_pkgbase}-${pkgver}".tar.xz #{xz,sign}
+ 0001-rfkill-Fix-reading-from-rfkill-socket.patch)
# see https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc
-sha256sums=('c8065e75a5eb67236849ef68a354b1700540305a8c88ef0a0fd6288f19daf1f1')
+sha256sums=('046b95b386d0bfb2a16311fe799d517ee7735045512d89902c4ed701db477316'
+ 'befc9c56fa15fe276916d299e70901d09aedc25d5a29ee444e78fa76f297e72f')
#validpgpkeys=('E932D120BC2AEC444E558F0106CA9F5D1DCF2659') # Marcel Holtmann <marcel@holtmann.org>
+prepare() {
+ cd "${_pkgbase}"-${pkgver}
+ # https://bugs.archlinux.org/task/71243
+ patch -Np1 -i ../0001-rfkill-Fix-reading-from-rfkill-socket.patch
+}
+
build() {
cd "${_pkgbase}-${pkgver}"
./configure \