Re: Typecasting a void pointer to unsigned long in zsmalloc.c
Costa Shulyupin <[email protected]> Thu, 23 Jan 2025 23:09:47 +0200
| Newsgroups | org.kernelnewbies.kernelnewbies |
|---|---|
| Message-ID | <CADDUTFzN=BpNEOQB0r=rRRtiXNkgHzZpBsPfEgaLwJebBoPR1w@mail.gmail.com> |
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 _______________________________________________ Kernelnewbies mailing list [email protected] https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies