Re: [PATCH 1/2] staging: vc04_services: Fix unportable cast in vchiq_copy_from_user

From: Dan Carpenter
Date: Mon Oct 24 2016 - 06:54:39 EST


On Sun, Oct 23, 2016 at 10:29:18PM -0700, mzoran@xxxxxxxxxxxx wrote:
> From: Michael Zoran <mzoran@xxxxxxxxxxxx>
>
> Signed-off-by: Michael Zoran <mzoran@xxxxxxxxxxxx>
> ---
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
> index 32d12e6..98c6819 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
> @@ -219,7 +219,7 @@ remote_event_signal(REMOTE_EVENT_T *event)
> int
> vchiq_copy_from_user(void *dst, const void *src, int size)
> {
> - if ((uint32_t)src < TASK_SIZE) {
> + if ((unsigned long)src < TASK_SIZE) {
> return copy_from_user(dst, src, size);
> } else {
> memcpy(dst, src, size);


This code looks totally wrong still. That's not how we differentiate
kernel pointers from user pointers.

Also no commit message (I tend not to read the subject) so it took me a
while to figure out what was going on. Anyway, everything needs a
commit message. That's a rule.

regards,
dan carpenter