12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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
|