Typecasting a void pointer to unsigned long in zsmalloc.c
Costa Shulyupin
costa.shul at redhat.com
Thu Jan 23 16:09:47 EST 2025
Hi. I've found this:
Pointers are __u64, cast from/to a uintptr_t on the userspace side and
from/to a void __user * in the kernel. Try really hard not to delay this
conversion or worse, fiddle the raw __u64 through your code since that
diminishes the checking tools like sparse can provide. The macro
u64_to_user_ptr can be used in the kernel to avoid warnings about integers
and pointers of different sizes.
https://origin.kernel.org/doc/html/latest/process/botching-up-ioctls.html#:~:text=Pointers%20are%20__u64
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20250123/4a466ada/attachment.html>
More information about the Kernelnewbies
mailing list