lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260130170416.49994-1-abbotti@mev.co.uk>
Date: Fri, 30 Jan 2026 16:47:25 +0000
From: Ian Abbott <abbotti@....co.uk>
To: linux-kernel@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	Ian Abbott <abbotti@....co.uk>,
	H Hartley Sweeten <hsweeten@...ionengravers.com>
Subject: [PATCH 00/46] comedi: Add some I/O base address sanity checks

COMEDI devices for ISA cards are configured manually at run-time (with
admin privileges) to set the I/O port base address and other settings.
Currently, the low-level COMEDI drivers accept any base address as long
as the region can be successfully requested, but most boards have DIP
switches or jumpers to set the base address and have limitations on the
allowed range and alignment of the base address.  Use information from
the user manuals (where available) to get these limitations, and add
sanity checks to the drivers to check the base address.

These use a couple of new functions `comedi_check_request_region()` and
`__comedi_check_request_region()` to check the base address range and
alignment and request the region.  They are based on the existing
`comedi_request_region()` and `__comedi_request_region()` functions that
do not have the range and alignment checks.  The functions without the
`__` prefix also store the base address and length in the main COMEDI
device structure.

01) comedi: add comedi_check_request_region()
02) comedi: 8255: Add some I/O base address sanity checks
03) comedi: adq12b: Add sanity checks for I/O base address
04) comedi: aio_aio12_8: Add sanity checks for I/O base address
05) comedi: aio_iiro_16: Add sanity checks for I/O base address
06) comedi: amplc_dio200: Add sanity checks for I/O base address
07) comedi: amplc_pc236: Add sanity checks for I/O base address
08) comedi: amplc_pc263: Add sanity checks for I/O base address
09) comedi: c6xdigio: Add sanity checks for I/O base address
10) comedi: comedi_parport: Add sanity checks for I/O base address
11) comedi: dac02: Add sanity checks for I/O base address
12) comedi: das08_isa: Add sanity checks for I/O base address
13) comedi: das16: Add sanity checks for I/O base address
14) comedi: das16m1: Add sanity checks for I/O base address
15) comedi: das1800: Add sanity checks for I/O base address
16) comedi: das6402: Add sanity checks for I/O base address
17) comedi: das800: Add sanity checks for I/O base address
18) comedi: dmm32at: Add sanity check for I/O base address
19) comedi: dt2801: Add sanity checks for I/O base address
20) comedi: dt2811: Add sanity checks for I/O base address
21) comedi: dt2814: Add sanity checks for I/O base address
22) comedi: dt2815: Add sanity checks for I/O base address
23) comedi: dt2817: Add sanity checks for I/O base address
24) comedi: fl512: Add sanity checks for I/O base address
25) comedi: mpc624: Add sanity checks for I/O base address
26) comedi: multiq3: Add sanity checks for I/O base address
27) comedi: ni_at_a2150: Add sanity checks for I/O base address
28) comedi: ni_at_ao: Add sanity checks for I/O base address
29) comedi: ni_atmio: Add sanity checks for I/O base address
30) comedi: ni_atmio16d: Add sanity checks for I/O base address
31) comedi: ni_labpc: Add sanity checks for I/O base address
32) comedi: pcl711: Add sanity checks for I/O base address
33) comedi: pcl724: Add sanity checks for I/O base address
34) comedi: pcl726: Add sanity checks for I/O base address
35) comedi: pcl730: Add sanity checks for I/O base address
36) comedi: pcl812: Add sanity checks for I/O base address
37) comedi: pcl816: Add sanity checks for I/O base address
38) comedi: pcl818: Add sanity checks for I/O base address
39) comedi: pcm3724: Add sanity checks for I/O base address
40) comedi: pcmad: Add sanity checks for I/O base address
41) comedi: pcmda12: Add sanity checks for I/O base address
42) comedi: pcmmio: Add sanity checks for I/O base address
43) comedi: pcmuio: Add sanity checks for I/O base address
44) comedi: rti800: Add sanity checks for I/O base address
45) comedi: rti802: Add sanity checks for I/O base address
46) comedi: s526: Add sanity checks for I/O base address

 drivers/comedi/drivers.c                | 46 +++++++++++++++++++++-------
 drivers/comedi/drivers/8255.c           | 10 ++++---
 drivers/comedi/drivers/adq12b.c         |  3 +-
 drivers/comedi/drivers/aio_aio12_8.c    |  3 +-
 drivers/comedi/drivers/aio_iiro_16.c    |  3 +-
 drivers/comedi/drivers/amplc_dio200.c   |  3 +-
 drivers/comedi/drivers/amplc_pc236.c    |  3 +-
 drivers/comedi/drivers/amplc_pc263.c    |  3 +-
 drivers/comedi/drivers/c6xdigio.c       |  4 ++-
 drivers/comedi/drivers/comedi_parport.c |  4 ++-
 drivers/comedi/drivers/dac02.c          |  3 +-
 drivers/comedi/drivers/das08_isa.c      |  3 +-
 drivers/comedi/drivers/das16.c          | 31 +++++++++++++++----
 drivers/comedi/drivers/das16m1.c        |  3 +-
 drivers/comedi/drivers/das1800.c        |  3 +-
 drivers/comedi/drivers/das6402.c        |  3 +-
 drivers/comedi/drivers/das800.c         |  3 +-
 drivers/comedi/drivers/dmm32at.c        | 22 ++++++++++++--
 drivers/comedi/drivers/dt2801.c         |  3 +-
 drivers/comedi/drivers/dt2811.c         |  3 +-
 drivers/comedi/drivers/dt2814.c         |  3 +-
 drivers/comedi/drivers/dt2815.c         |  3 +-
 drivers/comedi/drivers/dt2817.c         |  3 +-
 drivers/comedi/drivers/dt282x.c         |  7 ++++-
 drivers/comedi/drivers/fl512.c          |  8 ++++-
 drivers/comedi/drivers/mpc624.c         |  3 +-
 drivers/comedi/drivers/multiq3.c        |  3 +-
 drivers/comedi/drivers/ni_at_a2150.c    |  3 +-
 drivers/comedi/drivers/ni_at_ao.c       |  3 +-
 drivers/comedi/drivers/ni_atmio.c       |  3 +-
 drivers/comedi/drivers/ni_atmio16d.c    |  3 +-
 drivers/comedi/drivers/ni_labpc.c       |  3 +-
 drivers/comedi/drivers/pcl711.c         |  6 +++-
 drivers/comedi/drivers/pcl724.c         | 22 +++++++++++++-
 drivers/comedi/drivers/pcl726.c         | 12 ++++++--
 drivers/comedi/drivers/pcl730.c         | 49 ++++++++++++++++++++++++++++--
 drivers/comedi/drivers/pcl812.c         | 22 +++++++++++++-
 drivers/comedi/drivers/pcl816.c         |  3 +-
 drivers/comedi/drivers/pcl818.c         | 27 +++++++++++++++--
 drivers/comedi/drivers/pcm3724.c        |  3 +-
 drivers/comedi/drivers/pcmad.c          |  3 +-
 drivers/comedi/drivers/pcmda12.c        |  9 +++++-
 drivers/comedi/drivers/pcmmio.c         |  3 +-
 drivers/comedi/drivers/pcmuio.c         |  5 ++--
 drivers/comedi/drivers/rti800.c         |  3 +-
 drivers/comedi/drivers/rti802.c         |  3 +-
 drivers/comedi/drivers/s526.c           |  3 +-
 include/linux/comedi/comedidev.h        | 53 ++++++++++++++++++++++++++++++---
 48 files changed, 355 insertions(+), 75 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ