[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251020175911.150815-1-n.zhandarovich@fintech.ru>
Date: Mon, 20 Oct 2025 20:59:10 +0300
From: Nikita Zhandarovich <n.zhandarovich@...tech.ru>
To: <syzbot+7811bb68a317954a0347@...kaller.appspotmail.com>
CC: Nikita Zhandarovich <n.zhandarovich@...tech.ru>,
<syzkaller-bugs@...glegroups.com>, <linux-kernel@...r.kernel.org>
Subject: [syzbot] [comedi?] INFO: task hung in comedi_open
#syz test
---
drivers/comedi/drivers/multiq3.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/comedi/drivers/multiq3.c b/drivers/comedi/drivers/multiq3.c
index 467587b0b250..dc27651e0ace 100644
--- a/drivers/comedi/drivers/multiq3.c
+++ b/drivers/comedi/drivers/multiq3.c
@@ -67,6 +67,11 @@
#define MULTIQ3_TRSFRCNTR_OL 0x10 /* xfer CNTR to OL (x and y) */
#define MULTIQ3_EFLAG_RESET 0x06 /* reset E bit of flag reg */
+/*
+ * Semi-arbitrary limit on the number of optional encoder chips
+ */
+#define MULTIQ3_MAX_ENC_CHIPS 16
+
static void multiq3_set_ctrl(struct comedi_device *dev, unsigned int bits)
{
/*
@@ -314,6 +319,11 @@ static int multiq3_attach(struct comedi_device *dev,
/* Encoder (Counter) subdevice */
s = &dev->subdevices[4];
+
+ /* sanity check for number of optional encoders */
+ if (it->options[2] > MULTIQ3_MAX_ENC_CHIPS)
+ it->options[2] = MULTIQ3_MAX_ENC_CHIPS;
+
s->type = COMEDI_SUBD_COUNTER;
s->subdev_flags = SDF_READABLE | SDF_LSAMPL;
s->n_chan = it->options[2] * 2;
Powered by blists - more mailing lists