round 15: redbear-acmd setrens security fix + README/AGENTS contradiction cleanup

Three doc/code fixes from the Round 15 audit:

1. redbear-acmd setrens security: the bare 'let _ = setrens(0,0)'
   silently dropped the syscall result. If setrens failed the
   CDC-ACM daemon would retain its original namespace and serve
   USB-serial requests with potentially elevated privileges. Now
   logs the error and returns early so the daemon refuses to
   serve with unknown namespace rather than continuing degraded.

2. README.md null+8 contradiction: line 138 used  (implying
   fixed) while lines 140/143/144 used 🟡 'runtime blocked'. Both
   could not be true. Demoted line 138 to 🟡 with caveat about
   compile-time guards only and runtime re-verification pending,
   matching QT6-WAYLAND-NULL8-DIAGNOSIS.md status. The four
   lines now agree.

3. README.md + AGENTS.md: replaced the non-existent config
   'redbear-live' (with output 'redbear-live.iso') with the
   accurate '<config>.iso' pattern. No 'redbear-live' config
   exists; ISO outputs follow '<config>.iso'.

   Also fixed README.md plan-version date from 2026-07-26 to
   2026-07-27 to match CONSOLE-TO-KDE-DESKTOP-PLAN.md.

3 files changed, +12/-6.
This commit is contained in:
2026-07-27 21:52:34 +09:00
parent 5682072e58
commit 883e8147ec
3 changed files with 12 additions and 6 deletions
+3 -3
View File
@@ -87,8 +87,8 @@ redox-master/
| Fix kernel | `recipes/core/kernel/source/` | Kernel is a recipe, not top-level |
| Fix a driver | `recipes/core/base/source/drivers/` | All drivers are userspace daemons |
| Fix relibc (POSIX) | `recipes/core/relibc/source/` | C library written in Rust |
| Wayland integration | `recipes/wip/wayland/` + `local/docs/WAYLAND-IMPLEMENTATION-PLAN.md` | 21 WIP recipes + local validation/ownership plan |
| KDE Plasma path | `recipes/wip/kde/` + `local/docs/legacy-obsolete-2026-07-25/05-KDE-PLASMA-ON-REDOX.md` (historical) | 9 WIP KDE app recipes |
| Wayland integration | `recipes/wip/wayland/` + `local/docs/3D-DESKTOP-COMPREHENSIVE-PLAN.md` | 21 WIP recipes; Wayland compositor detail consolidated into 3D-desktop plan (formerly `WAYLAND-IMPLEMENTATION-PLAN.md`, deleted 2026-07-27) |
| KDE Plasma path | `recipes/wip/kde/` + `local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md` (canonical) | 9 WIP KDE app recipes; historical `05-KDE-PLASMA-ON-REDOX.md` was deleted 2026-07-27 (see `local/docs/SUPERSEDED-DOC-LOG.md`) |
| **Desktop path plan** | `local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md` | **Canonical plan: console → HW-accelerated KDE** |
| Linux driver compat | `docs/04-LINUX-DRIVER-COMPAT.md` | linux-kpi + redox-driver-sys architecture (**GPU and Wi-Fi only — not USB**) |
| Build system internals | `src/bin/repo.rs`, `src/lib.rs`, `mk/repo.mk` | Cookbook tool in Rust |
@@ -272,7 +272,7 @@ make all
→ For each recipe: fetch source → apply patches → check cache (BLAKE3 dep hashes) → build or restore from repo/ → stage into sysroot
→ dep_hashes.toml written per recipe (BLAKE3 of each build dep's PKGAR)
→ Package groups resolved by installer Config::from_file()
→ mk/disk.mk (create filesystem.img, harddrive.img, redbear-live.iso or harddrive.img)
→ mk/disk.mk (create filesystem.img, harddrive.img, or `<config>`.iso)
→ redoxfs-mkfs → redox_installer → bootloader embedding
```
+2 -2
View File
@@ -135,7 +135,7 @@ successfully on branch `0.3.1`. Graphics packages are frozen at latest upstream
| Mesa — llvmpipe + virgl | ✅ Builds; EGL platform real, virgl auto-probe wired (DRM_IOCTL_VERSION major=0 + name + PCI info) |
| Mesa redox gallium winsys | ✅ Source landed; BO byte count now correct; per-surface crtc_id tracking via redox_drm_surface_set_crtc; meson wires it on iris/radeonsi; compile unverified in current canonical build |
| 3D userland (iris / radeonsi / Vulkan) | 🟡 Recipe enabled; configure failed on libclc — now fixed (libclc in deps); needs canonical `build-redbear.sh redbear-full` to validate | Comprehensive plan in `local/docs/3D-DRIVER-PLAN.md` |
| Qt6 Wayland null+8 | Comprehensive null guards in qtwaylandscanner (init_listener wrap) and libwayland (all wl_proxy_* entry points) | Detailed in `local/docs/QT6-WAYLAND-NULL8-DIAGNOSIS.md` |
| Qt6 Wayland null+8 | 🟡 Compile-time null guards in qtwaylandscanner (init_listener wrap) and libwayland (all wl_proxy_* entry points); **runtime re-verification pending** — static diagnosis only, no QEMU run with instrumented rebuild yet | Detailed in `local/docs/QT6-WAYLAND-NULL8-DIAGNOSIS.md` |
| SDDM display manager + Greeter/Login | ✅ Built; service + PAM + kde-wayland.desktop + greeter user all in `redbear-full.toml`; runtime proof needs canonical build |
| Qt 6.11.1 (Core, Gui, DBus, Wayland) | 🟡 Builds; Wayland `null+8` statically diagnosed; needs isolated runtime fix |
| KF6 Frameworks — 40/40 | 🟡 All frameworks build; KWin cooks successfully |
@@ -201,7 +201,7 @@ Red Bear OS operates under strict discipline. Full policies: [`local/AGENTS.md`]
## Documentation
- [Desktop Path Plan](local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md) — Canonical plan v6.0 (2026-07-26): kernel → DRM → Mesa → Wayland → KDE
- [Desktop Path Plan](local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md) — Canonical plan v6.0 (2026-07-27): kernel → DRM → Mesa → Wayland → KDE
- [Implementation Plan](docs/07-RED-BEAR-OS-IMPLEMENTATION-PLAN.md) — Roadmap and execution model
- [cub Package Manager](local/docs/CUB-PACKAGE-MANAGER.md) — AUR → recipe pipeline, CLI reference, architecture
- [tlc File Manager](local/recipes/tui/tlc/README.md) — Pure-Rust Midnight Commander replacement
@@ -218,7 +218,13 @@ fn main() {
dev.bulk_out,
std::sync::Arc::clone(&serial_state),
);
let _ = libredox::call::setrens(0, 0);
if let Err(e) = libredox::call::setrens(0, 0) {
log::error!(
"CDC ACM: setrens(0, 0) failed: {e} — refusing to serve USB-serial \
requests with elevated namespace privileges"
);
return;
}
log::info!("CDC ACM: scheme /scheme/{} ready", scheme_name);
loop {
let request = match socket.next_request(SignalBehavior::Restart) {