From 3c0b306d01a95e17579d938d8e9e8c527c251a4a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 7 Dec 2020 20:03:26 +0100 Subject: i386at: Really disable com and lpr above NCOM and NLPR commmodem and lprinfo arrays would otherwise overflow. * i386/i386at/com.c (comattach): Return early when unit is beyond NCOM. * i386/i386at/lpr.c (lprattach): Return early when unit is beyond NLPR. --- i386/i386at/com.c | 5 +++++ i386/i386at/lpr.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/i386/i386at/com.c b/i386/i386at/com.c index 2bdbc0d0..02b650b8 100644 --- a/i386/i386at/com.c +++ b/i386/i386at/com.c @@ -224,6 +224,11 @@ comattach(struct bus_device *dev) u_char unit = dev->unit; u_short addr = dev->address; + if (unit >= NCOM) { + printf(", disabled by NCOM configuration\n"); + return; + } + take_dev_irq(dev); printf(", port = %lx, spl = %ld, pic = %d. (DOS COM%d)", dev->address, dev->sysdep, dev->sysdep1, unit+1); diff --git a/i386/i386at/lpr.c b/i386/i386at/lpr.c index 49cb1387..fe088771 100644 --- a/i386/i386at/lpr.c +++ b/i386/i386at/lpr.c @@ -94,6 +94,11 @@ void lprattach(struct bus_device *dev) u_char unit = dev->unit; u_short addr = (u_short) dev->address; + if (unit >= NLPR) { + printf(", disabled by NLPR configuration\n"); + return; + } + take_dev_irq(dev); printf(", port = %lx, spl = %ld, pic = %d.", dev->address, dev->sysdep, dev->sysdep1); -- cgit v1.2.3