Jan 21 2021
This appears to have been accepted but not merged - it would be great to have it get into 13.0 if there's still time
Sep 12 2020
Sep 11 2020
Audit support for regular lookup starts with AUDIT_ARG_UPATH1_VP/AUDIT_ARG_UPATH2_VP without any vnodes locked. Later on visited vnodes get added with AUDIT_ARG_VNODE1/AUDIT_ARG_VNODE2 which only performs VOP_GETATTR (i.e. does *NOT* resolve any paths). Your code should follow the same scheme.
Sep 10 2020
I feel vfs_cache.c changes for making vn_fullpath_global work for optionally locked vnode are causing the trouble. Though I'm not sure what's the problem. I request Mateusz Guzik, @mjg to have a look at my vfs_cache.c changes. I would be grateful for your time.
Sep 7 2020
The new code looks better. But grrr, there are two big problems:
- It doesn't compile due to some recent changes on head. I suggest the following:
- Remove the <rpc/rpc.h>, <sys/mount.h>, and <fs/nfs/*> includes from audit.h. In addition to fixing the compile failure, it's generally not recommended to include headers from other headers. Sometimes it's necessary, but it also causes header pollution, and slow build times. Instead of including those files, just forward declare struct nfsrv_descript; and struct kaudit_record;.
- Add `<netinet/in.h>, <rpc/rpc.h>, <fs/nfs/nfsdport.h>, <fs/nfs/nfsproto.h>, and <fs/nfs/nfs.h> to audit_bsm_db.c
- Add <rpc/rpc.h>, <fs/nfs/nfsport.h>, <fs/nfs/nfsproto.h>, and <fs/nfs/nfs.h> to audit.c
- merge vn_fullpath_any and vn_vptocnp with their locked counterpart to work for optionally locked vnodes.
Sep 6 2020
Aug 31 2020
I created a new review - D26243. Sorry for the trouble.
It was earlier being reviewed on D25869. But due to change of base revision, It was showing changes which were not mine. So, I created a new review here.
Aug 30 2020
It looks like your most recent change rebased the base revision. That makes it very hard to see which changes are from you and which aren't. Could you please either un-rebase it or, if that's not possible, open a new review?
Using two completely separate functions reduces the scope of error. Also prevent any mutation to the current code path for not locked vnodes, while allowing it to work for locked vnodes.
Aug 28 2020
- updated sys/kern/vfs_cache.c to reduce code duplication with vn_fullpath_dir
- some trivial changes
Aug 20 2020
Regarding code duplication in vn_fullpath_dir_locked:
I modified vn_fullpath_dir(and removed vn_fullpath_dir_locked) for optionally locked vnode here in git commit: https://github.com/shivankgarg98/freebsd/commit/418c1c2a6de9989fe7a541f6111ee2c3f2786c7b
It works fine NFSv4=3 case but somehow breaks nfsrvd_open to result in an error.{and hence can't open/create a regular file from client}.
Using two completely separate functions reduces the scope of error. Also prevent any mutation to the current code path for not locked vnodes, while allowing it to work for locked vnodes.
follow-up on suggested changes.
Aug 19 2020
This is a much better locking strategy. However, there's a lot of duplicated code. Could you maybe combine the _locked with the original functions, so there wouldn't be so much duplication?
Aug 4 2020
removing unlocking/relocking implementation for vnode for auditing path, instead, define separate functions in vfs_cache.c for locked vnode as argument.
Jul 30 2020
Thanks for all suggestions. I have incorporated them into my code. There is just a directory vnode unlocking/relocking issue not done yet.
In summary, locking and unlocking vnodes in this code is dangerous
and I am not in a position to make sure what you do is safe.
Jul 29 2020
follow up on changes suggested by asomers@
Jul 28 2020
Aug 19 2019
Aug 9 2019
- correct the IP addresses which were not in the documentation range
There's a couple of public IP(v6) addresses in the test scripts. We'd prefer not to have accidents with people. Can you please change them?
Aug 6 2019
- add ipacl entry in tests Makefile
- fix minor issues in mac_ipacl.4
Aug 5 2019
Aug 4 2019
All the tests seem to work on r350568
Aug 3 2019
- make tests more structured with atf
- update man page mac_ipacl.4
check if ipf module is loaded using "kldstat -q -m ipfilter " because "kldstat -q -m ipl" doesn't work.
Jul 31 2019
fix errors shown by mandoc -Tlint for mac_ipacl.4
fix the license and copyrights
Hi, @0mp thanks for the suggestion :).
You may also want to run mandoc -Tlint apart from igor. :)
Jul 30 2019
- Fix ipf check (using type ipf &> /dev/null)
Jul 29 2019
I think I'm happy with this.
I'll give Tom a bit of time to add any more remarks he might have, but I think we can commit this soon.
- Used ULA for v6 addresses
- Changed license according to preferred license
- For no_dad, I am taking kp's words regarding speed of the tests.
Jul 28 2019
- move man page to its right place