From: Maximilian Luz Date: Thu, 11 Feb 2021 12:41:49 +0000 (+0100) Subject: platform/surface: aggregator: Fix access of unaligned value X-Git-Tag: v5.12-rc1~123^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=86eb98cb4a911631874c43309f39aa0003ad0106;p=thirdparty%2Flinux.git platform/surface: aggregator: Fix access of unaligned value The raw message frame length is unaligned and explicitly marked as little endian. It should not be accessed without the appropriate accessor functions. Fix this. Note that payload.len already contains the correct length after parsing via sshp_parse_frame(), so we can simply use that instead. Reported-by: kernel-test-robot Fixes: c167b9c7e3d6 ("platform/surface: Add Surface Aggregator subsystem") Signed-off-by: Maximilian Luz Acked-by: Mark Gross Reviewed-by: Andy Shevchenko Link: https://lore.kernel.org/r/20210211124149.2439007-1-luzmaximilian@gmail.com Signed-off-by: Hans de Goede --- diff --git a/drivers/platform/surface/aggregator/ssh_packet_layer.c b/drivers/platform/surface/aggregator/ssh_packet_layer.c index 583315db8b027..15d96eac6811f 100644 --- a/drivers/platform/surface/aggregator/ssh_packet_layer.c +++ b/drivers/platform/surface/aggregator/ssh_packet_layer.c @@ -1774,7 +1774,7 @@ static size_t ssh_ptl_rx_eval(struct ssh_ptl *ptl, struct ssam_span *source) break; } - return aligned.ptr - source->ptr + SSH_MESSAGE_LENGTH(frame->len); + return aligned.ptr - source->ptr + SSH_MESSAGE_LENGTH(payload.len); } static int ssh_ptl_rx_threadfn(void *data)