+2
−2
Loading
ioam6_fill_trace_data() stores the schema contribution to the trace length in a u8. With bit 22 enabled and the largest schema payload, sclen becomes 1 + 1020 / 4, wraps from 256 to 0, and bypasses the remaining-space check. __ioam6_fill_trace_data() then positions the write cursor without reserving the schema area but still copies the 4-byte schema header and the full schema payload, overrunning the trace buffer. Keep sclen in an unsigned int so the remaining-space check and the write cursor calculation both see the full schema length. Fixes: 8c6f6fa6 ("ipv6: ioam: IOAM Generic Netlink API") Signed-off-by:Pengpeng Hou <pengpeng@iscas.ac.cn> Reviewed-by:
Justin Iurman <justin.iurman@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>