coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet()
stable inclusion from stable-v5.10.181 commit b663696c06527c9649d66f5176a3098554cef0d6 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I8GJZJ Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b663696c06527c9649d66f5176a3098554cef0d6 -------------------------------- commit f67bc15e upstream. This code generates a Smatch warning: drivers/hwtracing/coresight/coresight-tmc-etr.c:947 tmc_etr_buf_insert_barrier_packet() error: uninitialized symbol 'bufp'. The problem is that if tmc_sg_table_get_data() returns -EINVAL, then when we test if "len < CORESIGHT_BARRIER_PKT_SIZE", the negative "len" value is type promoted to a high unsigned long value which is greater than CORESIGHT_BARRIER_PKT_SIZE. Fix this bug by adding an explicit check for error codes. Fixes: 75f4e361 ("coresight: tmc-etr: Add transparent buffer management") Signed-off-by:Dan Carpenter <dan.carpenter@linaro.org> Signed-off-by:
Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/7d33e244-d8b9-4c27-9653-883a13534b01@kili.mountain Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
sanglipeng <sanglipeng1@jd.com> (cherry picked from commit 81db8567)
Loading
Please sign in to comment