|
Description
|
While doing the boot bringup for the Clearview IPMP Rearchitecture, I
noticed something bizarre: when booting up a system with more than one
missing interface (not0 and not1), only the first one was reported --
e.g.:
Failed to plumb interface(s): not0
Some rummaging around revealed the problem: warn_failed_ifs() expects
all of the interfaces faces to packaged into $2, but the callers do
not properly quote their calls:
[ -n "$inet_failed" ] && warn_failed_ifs "plumb IPv4" $inet_failed
^^^^^^^^^^^^
Thus, even if $inet_failed is `not0 not1', only the first one (not0) will
end up in $2, and the others will be silently discarded. All five callers
to warn_failed_ifs have this problem:
[ -n "$inet_failed" ] && warn_failed_ifs "plumb IPv4" $inet_failed
[ -n "$inet6_failed" ] && warn_failed_ifs "plumb IPv6" $inet6_failed
[ -n "$i4s_fail" ] && warn_failed_ifs "configure IPv4" $i4s_fail
[ -n "$i6_fail" ] && warn_failed_ifs "configure IPv6" $i6_fail
[ -n "$i4d_fail" ] && warn_failed_ifs "configure IPv4 DHCP" $i4d_fail
In all cases, double-quotes need to be added.
|