On Tue, Jun 22, 2021 at 12:29 AM Gabriel Knezek <gabeknez@xxxxxxxxxxxxxxxxxxx> wrote: > > When userspace requests a GPIO v1 line info changed event, > lineinfo_watch_read() populates and returns the gpioline_info_changed > structure. It contains 5 words of padding at the end which are not > initialized before being returned to userspace. > > Zero the structure in gpio_v2_line_info_change_to_v1() before populating > its contents. > > Fixes: aad955842d1c ("gpiolib: cdev: support GPIO_V2_GET_LINEINFO_IOCTL and > GPIO_V2_GET_LINEINFO_WATCH_IOCTL") > Signed-off-by: Gabriel Knezek <gabeknez@xxxxxxxxxxxxxxxxxxx> > --- > Changes in v3: > - Include the Fixes tag referencing the code being fixed and properly > version the patch. > > Changes in v2: > - Update commit message and subject with suggestions about clarity. > - Patch series at https://www.spinics.net/lists/linux-gpio/msg62163.html > > v1: > - Initial patch > - Patch series at https://www.spinics.net/lists/linux-gpio/msg62084.html > > drivers/gpio/gpiolib-cdev.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c > index ee5903aac497..af68532835fe 100644 > --- a/drivers/gpio/gpiolib-cdev.c > +++ b/drivers/gpio/gpiolib-cdev.c > @@ -1865,6 +1865,7 @@ static void gpio_v2_line_info_changed_to_v1( > struct gpio_v2_line_info_changed *lic_v2, > struct gpioline_info_changed *lic_v1) > { > + memset(lic_v1, 0, sizeof(*lic_v1)); > gpio_v2_line_info_to_v1(&lic_v2->info, &lic_v1->info); > lic_v1->timestamp = lic_v2->timestamp_ns; > lic_v1->event_type = lic_v2->event_type; > -- > 2.25.1 > I fixed the wrapping of the Fixes tag and queued this for fixes with Kent's review tag. Bart