diff options
author | Ted Alff | 2021-06-16 21:16:50 -0400 |
---|---|---|
committer | Ted Alff | 2021-06-16 21:16:50 -0400 |
commit | ff55ee2289c2d227c92439b2ce7c62a38b05f9b4 (patch) | |
tree | b1f89822c26b82d738d10a59b9351d79787216e2 | |
parent | f12c5f9fa9c6bd023e5cbf38ecc254c7645c3631 (diff) | |
download | aur-ff55ee2289c2d227c92439b2ce7c62a38b05f9b4.tar.gz |
Version bump 5.59
-rw-r--r-- | .SRCINFO | 12 | ||||
-rw-r--r-- | 0001-rfkill-Fix-reading-from-rfkill-socket.patch | 83 | ||||
-rw-r--r-- | PKGBUILD | 16 |
3 files changed, 102 insertions, 9 deletions
@@ -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 @@ -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 \ |