[PATCH] modinfo: fix module parsing with kernel >= 2.6.37

Denys Vlasenko vda.linux at googlemail.com
Fri Jul 4 14:39:52 UTC 2014


On Thu, Jul 3, 2014 at 12:24 PM, David Marchand
<david.marchand at 6wind.com> wrote:
> display() function returns the length of the value we are displaying + 1.
> As a consequence, if we have field=value\0field=value\0field=value in the
> binary, then the second occurence will be skipped as ptr will miss the first
> character of the following field.
>
> Example trying to list aliases from ixgbe.ko on a 3.2 kernel.
>
> - In the module we have:
> alias=pci:v00008086d00001560sv*sd*bc*sc*i*\0
> alias=pci:v00008086d0000154Asv*sd*bc*sc*i*\0
> alias=pci:v00008086d00001557sv*sd*bc*sc*i*\0
> alias=pci:v00008086d0000154Fsv*sd*bc*sc*i*\0
> alias=pci:v00008086d0000154Dsv*sd*bc*sc*i*\0
> ...
>
> - Using modinfo -F alias ixgbe returns:
> alias:          pci:v00008086d00001560sv*sd*bc*sc*i*
> alias:          pci:v00008086d00001557sv*sd*bc*sc*i*
> alias:          pci:v00008086d0000154Dsv*sd*bc*sc*i*
> ...
>
> This problem appeared with kernel commit "modules: no need to align .modinfo
> strings" b6472776816af1ed52848c93d26e3edb3b17adab in 2.6.37.
>
> Fix this by not trusting display() return value but increment ptr by strlen(ptr)
> (the same way as depmod.c does).
>
> Signed-off-by: David Marchand <david.marchand at 6wind.com>


Applied, thanks!


More information about the busybox mailing list