Files
rpi-buildroot/package/android-tools/0014-core-adbd-adb.c-open-code-capset.patch
Thomas Petazzoni 3ee745782a package/android-tools: convert all patches to Git-formatted patches
This will make it easier to modify the patch series moving forward. No
functional changes.

On one patch, we added the SoB from Giulio, which was missing. Giulio
was the original contributor of the patch, and nobody touched it since
it was introduced.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-12-04 22:40:19 +01:00

53 lines
1.7 KiB
Diff

From 850fd3f4a0384ebe492a466a9b1149060619aacb Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Sun, 14 Jul 2024 12:57:22 +0200
Subject: [PATCH] core/adbd/adb.c: open code capset()
capset() is apparently implemented by C libraries (at least glibc and
musl), but not exposed through a header as an official public API.
In addition capset(2) says:
Note: glibc provides no wrappers for these system calls,
necessitating the use of syscall(2)
The lack of a header with a prototype for capset() was not causing any
problem so far, but GCC 14.x has become stricter on implicit
declarations, causing the build to fail with:
core/adbd/adb.c:1296:9: error: implicit declaration of function 'capset' [-Wimplicit-function-declaration]
So fix that by open-coding it using syscall() as suggested by the man
page.
Upstream: N/A, we're too far from upstream
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
core/adbd/adb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/core/adbd/adb.c b/core/adbd/adb.c
index 7fe6445..98b1de1 100644
--- a/core/adbd/adb.c
+++ b/core/adbd/adb.c
@@ -41,6 +41,7 @@
#if !ADB_HOST
#include "android_filesystem_config.h"
#include <linux/capability.h>
+#include <sys/syscall.h>
#include <linux/prctl.h>
#include <sys/mount.h>
#else
@@ -1293,7 +1294,7 @@ int adb_main(int is_daemon, int server_port)
header.pid = 0;
cap[CAP_TO_INDEX(CAP_SYS_BOOT)].effective |= CAP_TO_MASK(CAP_SYS_BOOT);
cap[CAP_TO_INDEX(CAP_SYS_BOOT)].permitted |= CAP_TO_MASK(CAP_SYS_BOOT);
- capset(&header, cap);
+ syscall(SYS_capset, &header, cap);
D("Local port disabled\n");
} else {
--
2.47.0