and others overflow in-kernel due to that (causing persistent damage
that causes deleting and adding bridge members to fix it).
I'm aware that moving to strtonum(3) drops the ability to pass numbers
in bases others than ten, e.g. `ifconfig bridge0 ifcost vether0 0x3'
mut now be `... 15', but all of the options really want a decimal number
as far as I can judge after reading ifconfig(8) and testing them.
The only exception to this is switch(4)'s `datapath' which is printed in
hexadecimal, so I left it untouched such that it can be copy-pasted and
set as is.
Diff below applies converts all places to the very same strtonum() idiom
with proper range checks based on documented or type limits.
I've tested each option manually: valid values are still valid and but
more out of range values are catched now, many of them up front in
ifconfig rather than the kerne's ioctl() path.
I've also checked most of the ioctl() paths to see what those really
check for. One or two diffs for the kernel should follow soon.