lkml.org 
[lkml]   [2019]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 37/47] drivers/pps/pps.c: clear offset flags in PPS_SETPARAMS ioctl
    Date
    From: Miroslav Lichvar <mlichvar@redhat.com>

    [ Upstream commit 5515e9a6273b8c02034466bcbd717ac9f53dab99 ]

    The PPS assert/clear offset corrections are set by the PPS_SETPARAMS
    ioctl in the pps_ktime structs, which also contain flags. The flags are
    not initialized by applications (using the timepps.h header) and they
    are not used by the kernel for anything except returning them back in
    the PPS_GETPARAMS ioctl.

    Set the flags to zero to make it clear they are unused and avoid leaking
    uninitialized data of the PPS_SETPARAMS caller to other applications
    that have a read access to the PPS device.

    Link: http://lkml.kernel.org/r/20190702092251.24303-1-mlichvar@redhat.com
    Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Rodolfo Giometti <giometti@enneenne.com>
    Cc: Greg KH <greg@kroah.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/pps/pps.c | 8 ++++++++
    1 file changed, 8 insertions(+)

    diff --git a/drivers/pps/pps.c b/drivers/pps/pps.c
    index 8febacb8fc54..0951564b6830 100644
    --- a/drivers/pps/pps.c
    +++ b/drivers/pps/pps.c
    @@ -166,6 +166,14 @@ static long pps_cdev_ioctl(struct file *file,
    pps->params.mode |= PPS_CANWAIT;
    pps->params.api_version = PPS_API_VERS;

    + /*
    + * Clear unused fields of pps_kparams to avoid leaking
    + * uninitialized data of the PPS_SETPARAMS caller via
    + * PPS_GETPARAMS
    + */
    + pps->params.assert_off_tu.flags = 0;
    + pps->params.clear_off_tu.flags = 0;
    +
    spin_unlock_irq(&pps->lock);

    break;
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-07-26 16:09    [W:2.513 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site