Bruce Evans <[EMAIL PROTECTED]> writes:
> The correct fix is to unbreak getbsize() so that it takes an `int *' as its
> first arg like it used to.  The interface change and the above change
> just give a header length that is not directly usably by any of its users.
> The header length is what must be passed to printf in %*s formats; it
> should have type int since that is what printf takes; any bounds checking
> of it belongs in getbsize() (but in practice it is a small positive
> number since anything else would give preposterous formatting, so there
> is never a problem with its bounds).  Other users of getbsize() in the
> src tree but perhaps not ones in ports have been broken to match the
> interface breakage.  The usual breakage is to cast the size_t to int
> without checking bounds.

Agreed.  Not a single consumer actually wants a size_t and not all base
system uses have been "fixed" for the new interface (ls(1) for instance).
I'd like to see the interface restored and merged into RELENG_5_0 before
we introduce this mistake on the world.

Best regards,
Mike Barcroft

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to