On Mon, Jul 27, 2020 at 04:16:08PM +0300, Dan Carpenter wrote:
> drivers/char/hpet.c:675 hpet_ioctl() warn: check that 'info' doesn't leak 
> information (struct has a hole after 'hi_timer')

This one seems like a false positive.

drivers/char/hpet.c:670:

        mutex_lock(&hpet_mutex);
        err = hpet_ioctl_common(file->private_data, cmd, arg, &info);
        mutex_unlock(&hpet_mutex);

        if ((cmd == HPET_INFO) && !err &&
            (copy_to_user((void __user *)arg, &info, sizeof(info))))
                err = -EFAULT;

`info` is only being copied to userspace when `cmd` is `HPET_INFO`.
However, hpet_ioctl_common() is already doing memset() on `info` in
`case HPET_INFO`:

drivers/char/hpet.c:612:

        case HPET_INFO:
                {
                        memset(info, 0, sizeof(*info));
                        ^^^^^^

Thank you,
Peilin Ye

Reply via email to