[lvc-project] [PATCH] PCI/IOV: "virtfn4294967295\0" requires 17 bytes
Matthew Wilcox
willy at infradead.org
Fri Dec 30 00:09:56 MSK 2022
On Thu, Dec 29, 2022 at 12:12:58PM -0600, Bjorn Helgaas wrote:
> On Sun, Dec 18, 2022 at 10:19:24PM +0000, Matthew Wilcox wrote:
> > On Sun, Dec 18, 2022 at 03:21:39PM +0300, Alexey V. Vissarionov wrote:
> > > On 2022-12-18 19:57:02 +0900, Krzysztof Wilczyński wrote:
> > ...
>
> > > Although unlikely, the 'id' value may be as big as 4294967295
> > > (uint32_max) and "virtfn4294967295\0" would require 17 bytes
> > > instead of 16 to make sure that buffer has enough space to
> > > properly NULL-terminate the ID string.
> >
> > Wait, what? How can we get to a number that large for the virtual
> > function ID? devfn is 8 bits, bus is a further 8 bits. Sure, domain
> > is an extra 16 bits on top of that but I'm pretty sure that virtual
> > functions can't span multiple domains. Unless that's changed recently?
> >
> > Even if they can, we'd need to span 2^14 domains to get up to a billion
> > IDs. That's a hell of a system and I think overflowing here is the
> > least of our problems.
> >
> > So while this is typed as u32, I don't think it can get anywhere close.
>
> Is there an argument *against* this patch (as opposed to "this is
> probably unnecessary and it requires a lot of analysis to prove that
> we don't need it")?
It consumes additional stack space? It's an example of changing code
to shut up a tool that is of dubious value?
More information about the lvc-project
mailing list