--- /home/maxx/dfbsd/dfbsd/sys/dev/disk/mpt/mpt_user.c 2026-06-29 12:51:18.000000000 +0000 +++ /tmp/opencode/fixtree/sys/dev/disk/mpt/mpt_user.c 2026-10-24 09:43:41.294333244 +0000 @@ -33,6 +33,7 @@ */ #include +#include #include #include #include @@ -715,6 +716,10 @@ case MPTIO_WRITE_CFG_PAGE32: #endif case MPTIO_WRITE_CFG_PAGE: + if ((ap->a_fflag & FWRITE) == 0) { + error = EPERM; /* read-only fd: no cfg rewrites */ + break; + } error = mpt_alloc_buffer(mpt, &mpt_page, page_req->len); if (error) break; @@ -729,6 +734,10 @@ case MPTIO_RAID_ACTION32: #endif case MPTIO_RAID_ACTION: + if ((ap->a_fflag & FWRITE) == 0) { + error = EPERM; /* read-only fd: no RAID actions */ + break; + } if (raid_act->buf != NULL) { error = mpt_alloc_buffer(mpt, &mpt_page, raid_act->len); if (error)