From a578652c71b03bbdce45780cb271983ca2806c68 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Fri, 15 Aug 2025 03:40:17 -0400 Subject: kernel: disk: Add disk limit enforcements The number of disks registered within the system should not exceed the DISK_MAX limit. Log an error and bail if that happens. Signed-off-by: Ian Moffett --- sys/kern/kern_disk.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sys') diff --git a/sys/kern/kern_disk.c b/sys/kern/kern_disk.c index 1b16e4d..b956c02 100644 --- a/sys/kern/kern_disk.c +++ b/sys/kern/kern_disk.c @@ -239,6 +239,13 @@ disk_add(const char *name, dev_t dev, const struct bdevsw *bdev, int flags) /* Disk queue must be initialized */ check_diskq(); + /* There is a limit to how many can be added */ + if (disk_count >= DISK_MAX) { + pr_error("disk_add: disk limit %d/%d reached\n", + disk_count, DISK_MAX); + return -EAGAIN; + } + /* Is the disk name of correct length? */ name_len = strlen(name); if (name_len >= sizeof(dp->name) - 1) { -- cgit v1.2.3