User Details
- User Since
- Oct 2 2015, 1:17 PM (538 w, 12 h)
Thu, Jan 22
Tue, Jan 20
In the interest of not leaving main broken, I'm going to push this since it's functional both with a jail policy and without- noting that I fully expect to perhaps need another round to cleanup some remaining issue(s) pertaining to the expedited timeline.
Mon, Jan 19
Extra fixes, also for bd55cbb50c58876
(Scales a little better in the sense that one can have an image that can do any number of multiple fs, and they can only disable autoloading of specific rootfs)
My preference would be that we add in a config.isModuleDisabled():
Sat, Jan 17
I'm not sure I'm convinced that dir is actually always set, but I haven't spent that much time reading the above logic. An assertion on that here might be good to try and do something useful instead of infinitely looping, but I don't insist
Fri, Jan 16
Wed, Jan 14
+des for recent stdio work, jhb for having worked on something like this specifically that hadn't landed
Sun, Jan 11
Fri, Jan 9
Wed, Jan 7
Address review comments
Tue, Jan 6
Fri, Jan 2
Thu, Jan 1
Ahh, sorry, I got confused with the missing context- can you reupload this with either git-arc or -U99999, please? It's immensely useful to be able to scroll back up and confirm where different hunks are applying
I am quite confused about what happened here. Can you explain the connection between my previous note and the changes made?
I don't think this is actually sufficient, but I don't think fixing it will be all that hard. sprkopen currently uses the fact that it's locked by Giant, so you'll probably want one spkr mutex to be taken in spkropen() and spkrclose() to be sure it's only opened by a single thread (and not leaking an allocation if spkr_inbuf gets clobbered`).
Dec 23 2025
Dec 20 2025
Dec 19 2025
Highlights:
- Remove vfs_opterror() for those entry points that take the opts already
- Move one case of mac_prison_check_get back as a special-case to avoid breaking jail enumeration.
- Unbreak the build of this patch: prison_copy_label comes in a later change
- Drop redundant JAIL_ATTACH check
Dec 18 2025
Dec 17 2025
Dec 16 2025
Dec 15 2025
Ping
Dec 9 2025
Ping; any other complaints besides the type nits? I'll fix those to use standard types for the next revision or pre commit.
Dec 6 2025
Dec 4 2025
Dec 3 2025
Highlights:
- Reorganize mac_get_prison() to reduce failure modes and drop the prison lock on the way out
- Assert that the lock is in the correct state afterwards in kern_jail_get()
Highlights:
- Removed prison_check_list, because it's of limited value; this could pose a problem if check_get rejects a prison as lastjid enumeration would halt when MAC denied it, but that probably requires a different solution
- Moved mac_prison_check_get calls to after found_prison, but on the tail of that last note, it might make sense to provide a found_prison_nomac and move one check back into the lastjid loop and just continue if we encounter one that we can't fetch. This would be cleaner than policies having to implement both a check_list and check_get to avoid breaking enumeration
- Moved the attach check to the point that we're about to attach; there are other ways this can fail from external modules anyways (e.g., osd), so trying to keep it all atomic may not be worth as much as being sure that the policy can examine the current properties of the jail. This also ensures that the creation+attach case is covered
- Add missing unlocking
Highlights:
- Remove mac_prison_create_init(): one would probably want to special-case prison0 earlier in mac_prison_init(), and they don't actually need to know anything about prison0 specifically: pr_parent == NULL is a good indicator of the root prison
- Don't leak labels, call mac_prison_destroy()
- Drop a bunch of locking assertions in label operations