git: 5eb1d4eec676 - main - rpctls_impl.c: Use a direct cast to uintptr_t instead of __DECONST
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 21 Jan 2026 16:11:11 UTC
The branch main has been updated by jhb:
URL: https://cgit.FreeBSD.org/src/commit/?id=5eb1d4eec67685a933cedd5a20fbec86febcd3a9
commit 5eb1d4eec67685a933cedd5a20fbec86febcd3a9
Author: John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-01-21 16:10:53 +0000
Commit: John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-01-21 16:10:53 +0000
rpctls_impl.c: Use a direct cast to uintptr_t instead of __DECONST
This fixes the build on CHERI architectures where the compiler warns
about a direct cast between uint64_t and const void * inside of
__DECONST. However, GCC would also complain about this on 32-bit
kernels due to uint64_t not being the same size as a pointer. Also,
a direct cast to uintptr_t to right-size the cookie value is more
direct than using __DECONST given that there is no "const" pointer
involved in the expression.
Reviewed by: brooks, glebius
Obtained from: CheriBSD
Sponsored by: AFRL, DARPA
Differential Revision: https://reviews.freebsd.org/D54797
---
sys/rpc/rpcsec_tls/rpctls_impl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys/rpc/rpcsec_tls/rpctls_impl.c b/sys/rpc/rpcsec_tls/rpctls_impl.c
index 51fe270b13d9..22ba699a6fab 100644
--- a/sys/rpc/rpcsec_tls/rpctls_impl.c
+++ b/sys/rpc/rpcsec_tls/rpctls_impl.c
@@ -163,7 +163,7 @@ sys_rpctls_syscall(struct thread *td, struct rpctls_syscall_args *uap)
mtx_lock(&rpctls_lock);
upsp = RB_FIND(upsock_t, &upcall_sockets,
&(struct upsock){
- .so = __DECONST(struct socket *, uap->socookie) });
+ .so = (struct socket *)(uintptr_t)uap->socookie });
if (__predict_true(upsp != NULL)) {
RB_REMOVE(upsock_t, &upcall_sockets, upsp);
/*