media: lirc: drop trailing space from scancode transmit
authorSean Young <sean@mess.org>
Fri, 6 Oct 2023 21:31:52 +0000 (22:31 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Nov 2023 17:20:11 +0000 (17:20 +0000)
commit c8a489f820179fb12251e262b50303c29de991ac upstream.

When transmitting, infrared drivers expect an odd number of samples; iow
without a trailing space. No problems have been observed so far, so
this is just belt and braces.

Fixes: 9b6192589be7 ("media: lirc: implement scancode sending")
Cc: stable@vger.kernel.org
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/rc/lirc_dev.c

index 043d23a..a537734 100644 (file)
@@ -276,7 +276,11 @@ static ssize_t lirc_transmit(struct file *file, const char __user *buf,
                if (ret < 0)
                        goto out_kfree_raw;
 
-               count = ret;
+               /* drop trailing space */
+               if (!(ret % 2))
+                       count = ret - 1;
+               else
+                       count = ret;
 
                txbuf = kmalloc_array(count, sizeof(unsigned int), GFP_KERNEL);
                if (!txbuf) {