From: Dan Carpenter Date: Fri, 17 Dec 2021 07:12:09 +0000 (+0300) Subject: platform/x86: think-lmi: Prevent underflow in index_store() X-Git-Tag: v6.6.17~8471^2~33 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=72e4d07d9499d979a3fc38c77f4120707c709ea5;p=platform%2Fkernel%2Flinux-rpi.git platform/x86: think-lmi: Prevent underflow in index_store() There needs to be a check to prevent negative offsets for setting->index. I have reviewed this code and I think that the "if (block->instance_count <= instance)" check in __query_block() will prevent this from resulting in an out of bounds access. But it's still worth fixing. Fixes: 640a5fa50a42 ("platform/x86: think-lmi: Opcode support") Signed-off-by: Dan Carpenter Link: https://lore.kernel.org/r/20211217071209.GF26548@kili Reviewed-by: Hans de Goede Signed-off-by: Hans de Goede --- diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c index 27ab8e4..0b73e16 100644 --- a/drivers/platform/x86/think-lmi.c +++ b/drivers/platform/x86/think-lmi.c @@ -573,7 +573,7 @@ static ssize_t index_store(struct kobject *kobj, if (err < 0) return err; - if (val > TLMI_INDEX_MAX) + if (val < 0 || val > TLMI_INDEX_MAX) return -EINVAL; setting->index = val;