]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
comedi: me_daq: Fix potential overrun of firmware buffer
authorIan Abbott <abbotti@mev.co.uk>
Thu, 5 Feb 2026 14:01:30 +0000 (14:01 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Apr 2026 12:39:29 +0000 (14:39 +0200)
commitcc797d4821c754c701d9714b58bea947e31dbbe0
tree66a69a734af1b3fdce0cc81a9f935b440f629f21
parent3fb43a7a5b44713f892c58ead2e5f3a1bc9f4ee7
comedi: me_daq: Fix potential overrun of firmware buffer

`me2600_xilinx_download()` loads the firmware that was requested by
`request_firmware()`.  It is possible for it to overrun the source
buffer because it blindly trusts the file format.  It reads a data
stream length from the first 4 bytes into variable `file_length` and
reads the data stream contents of length `file_length` from offset 16
onwards.  Although it checks that the supplied firmware is at least 16
bytes long, it does not check that it is long enough to contain the data
stream.

Add a test to ensure that the supplied firmware is long enough to
contain the header and the data stream.  On failure, log an error and
return `-EINVAL`.

Fixes: 85acac61096f9 ("Staging: comedi: add me_daq driver")
Cc: stable <stable@kernel.org>
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Link: https://patch.msgid.link/20260205140130.76697-1-abbotti@mev.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/comedi/drivers/me_daq.c