| From 5515e9a6273b8c02034466bcbd717ac9f53dab99 Mon Sep 17 00:00:00 2001 |
| From: Miroslav Lichvar <mlichvar@redhat.com> |
| Date: Tue, 16 Jul 2019 16:30:09 -0700 |
| Subject: drivers/pps/pps.c: clear offset flags in PPS_SETPARAMS ioctl |
| |
| From: Miroslav Lichvar <mlichvar@redhat.com> |
| |
| commit 5515e9a6273b8c02034466bcbd717ac9f53dab99 upstream. |
| |
| 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/pps/pps.c | 8 ++++++++ |
| 1 file changed, 8 insertions(+) |
| |
| --- a/drivers/pps/pps.c |
| +++ b/drivers/pps/pps.c |
| @@ -166,6 +166,14 @@ static long pps_cdev_ioctl(struct 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; |