chiark / gitweb /
bus: fix capabilities on big-endian
authorDavid Herrmann <dh.herrmann@gmail.com>
Tue, 30 Dec 2014 08:09:41 +0000 (09:09 +0100)
committerDavid Herrmann <dh.herrmann@gmail.com>
Tue, 30 Dec 2014 08:09:41 +0000 (09:09 +0100)
commit7d9fcc2bf6869993e5f38d5eb183fb59e8a52816
treec891ab50009613299173845bcce0cea428bc08f3
parent34a5d5e52661212c7a145cbab45e70a6df7ba284
bus: fix capabilities on big-endian

The kernel provides capabilities as a u32 array, sd-bus uses an u8 array.
This works fine on little-endian as both are encoded the same way.
However, this fails on big-endian if we do not perform sufficient
byte-swapping on each u32 entry.

This patch makes sd-bus use u32, too. We avoid changing any kernel
provided data so we can keep pointing into kdbus pool buffers which
contain u32 arrays.
src/libsystemd/sd-bus/bus-creds.c
src/libsystemd/sd-bus/bus-creds.h
src/libsystemd/sd-bus/bus-kernel.c