From 2944f15a6f93a779538c925ef75dcbe9a06da980 Mon Sep 17 00:00:00 2001 From: zhangyiqin <312065559@qq.com> Date: Fri, 17 Apr 2026 13:33:01 +0800 Subject: [PATCH 1/2] Check `num_chan_per_chip` to avoid `ZeroDivisionError` --- neo/rawio/spikegadgetsrawio.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/neo/rawio/spikegadgetsrawio.py b/neo/rawio/spikegadgetsrawio.py index 365d784e3..6bdbf9e4e 100644 --- a/neo/rawio/spikegadgetsrawio.py +++ b/neo/rawio/spikegadgetsrawio.py @@ -143,6 +143,8 @@ def _parse_header(self): # as spikegadgets change we should follow this try: num_chan_per_chip = int(sconf.attrib["chanPerChip"]) + if num_chan_per_chip <= 0: + raise KeyError except KeyError: num_chan_per_chip = 32 # default value for Intan chips From 255133486dcaf54fdb78bdbf48dbb3cdff01a521 Mon Sep 17 00:00:00 2001 From: zhangyiqin <312065559@qq.com> Date: Fri, 17 Apr 2026 14:39:37 +0800 Subject: [PATCH 2/2] Add protection for abnormal large value --- neo/rawio/spikegadgetsrawio.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/neo/rawio/spikegadgetsrawio.py b/neo/rawio/spikegadgetsrawio.py index 6bdbf9e4e..950440d6f 100644 --- a/neo/rawio/spikegadgetsrawio.py +++ b/neo/rawio/spikegadgetsrawio.py @@ -143,7 +143,9 @@ def _parse_header(self): # as spikegadgets change we should follow this try: num_chan_per_chip = int(sconf.attrib["chanPerChip"]) - if num_chan_per_chip <= 0: + if num_chan_per_chip <= 0: # invalid value + raise KeyError + if num_chan_per_chip > 100000: # abnormal large value raise KeyError except KeyError: num_chan_per_chip = 32 # default value for Intan chips