On 14.03.2018 18:58, Borislav Petkov wrote: > On Tue, Mar 13, 2018 at 10:06:34PM +0100, Maciej S. Szmigiero wrote: >> The maximum possible value returned by install_equiv_cpu_table() is >> UINT_MAX + CONTAINER_HDR_SZ (on a 64-bit kernel). >> This is more than (signed) int type currently returned by this function can >> hold so this function will need to return a size_t instead. > > I'm trying to parse this but I'm not really sure. > > All I know is: > > unsigned int size = ibuf[2]; > > and that is really a 4-byte unsigned quantity so anything less is an > arbitrary limitation.
There is no limit on CPU equivalence table length in this patch series like it was in the previous version. The maximum possible value returned by install_equiv_cpu_table() of UINT_MAX + CONTAINER_HDR_SZ comes from the maximum value of this 'size' variable (that is UINT_MAX) plus the header length of CONTAINER_HDR_SZ. This won't fit in 'int' type, hence this patch. That's because this functions tells its caller how much bytes to skip from the beginning of a microcode container file to the first patch section contained in it. Maciej

