On Wed, 1 May 2024, James Bottomley wrote:

> > The code itself is fine unless you have a 32-bit system with a 
> > malicious card, so yeah, near zero risk.
> 
> Well, no actually zero: we assume plugged in hardware to operate 
> correctly (had this argument in the driver hardening thread a while 
> ago), but in this particular case you'd have to have a card with a very 
> high number of ports, which would cause kernel allocations to fail long 
> before anything could introduce an overflow of sizeof(struct csio_lnode
> *) * hw->num_lns.
> 

Then it should be safe to add an equivalent assertion. E.g. 
BUG_ON(hw->num_lns > X) where X was derived either from knowledge of the 
hardware or from some known-safe kalloc() limit. Though I wonder whether 
BUG_ON() is the best way to encode preconditions for the benfit of static 
checkers...

Reply via email to