From 850fd3f4a0384ebe492a466a9b1149060619aacb Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni 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 --- 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 +#include #include #include #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