On Fri, Jun 02, 2023 at 01:06:30PM +0200, Joel Granados wrote: > Resending as the first set got mangled with smtp error. > > This is part of the effort to remove the empty element of the ctl_table > structures (used to calculate size) and replace it with an ARRAY_SIZE call. By > replacing the child element in struct ctl_table with a flags element we make > sure that there are no forward recursions on child nodes and therefore set > ourselves up for just using an ARRAY_SIZE. We also added some self tests to > make sure that we do not break anything. > > Patchset is separated in 4: parport fixes, selftests fixes, selftests additions and > replacement of child element. Tested everything with sysctl self tests and everything > seems "ok". > > 1. parport fixes: @mcgrof: this is related to my previous series and it plugs a > sysct table leak in the parport driver. Please tell me if you want me to repost > the parport series with this one stiched in. > > 2. Selftests fixes: Remove the prefixed zeros when passing a awk field to the > awk print command because it was causing $0009 to be interpreted as $0. > Replaced continue with return in sysctl.sh(test_case) so the test actually > gets skipped. The skip decision is now in sysctl.sh(skip_test). > > 3. Selftest additions: New test to confirm that unregister actually removes > targets. New test to confirm that permanently empty targets are indeed > created and that no other targets can be created "on top". > > 4. Replaced the child pointer in struct ctl_table with a u8 flag. The flag > is used to differentiate between permanently empty targets and non-empty ones. > > Comments/feedback greatly appreciated This all looks great, thanks so much for doing all this work! I pushed to sysctl-next. Luis