devinet.c inet_abc_len() breaking ifconfig?

From: Rob Landley
Date: Mon Oct 15 2018 - 10:42:51 EST

Dave Taht pointed out to me that this doesn't work in toybox:

$ ifconfig eth0 netmask broadcast
ifconfig: ioctl 8916: Invalid argument

Because of this in the kernel:

What is the inet_abc_len() function _for_? When's the last time "class A, Class
B, and Class C" IPv4 addresses actually _existed_ as a thing? (Somewhere around

He suggested I switch to the netlink API, which doesn't enforce this, but... why
is the kernel enforcing it for one api but not the other?