mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
objtool, Input: cyapa - Remove undefined behavior in cyapa_update_fw_store()
In cyapa_update_fw_store(), if 'count' is zero, the write to fw_name[count-1] underflows the array. Presumably that's not possible in normal operation, as its caller sysfs_kf_write() already checks for zero. Regardless it's a good idea to check for the error explicitly and avoid undefined behavior. Fixes the following warning with an UBSAN kernel: vmlinux.o: warning: objtool: .text.cyapa_update_fw_store: unexpected end of section Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/73ae0bb3c656735890d914b74c9d6bb40c25d3cd.1742852847.git.jpoimboe@kernel.org Closes: https://lore.kernel.org/oe-kbuild-all/202503171547.LlCTJLQL-lkp@intel.com/
This commit is contained in:
committed by
Ingo Molnar
parent
72c774aa9d
commit
7501153750
@@ -1080,8 +1080,8 @@ static ssize_t cyapa_update_fw_store(struct device *dev,
|
||||
char fw_name[NAME_MAX];
|
||||
int ret, error;
|
||||
|
||||
if (count >= NAME_MAX) {
|
||||
dev_err(dev, "File name too long\n");
|
||||
if (!count || count >= NAME_MAX) {
|
||||
dev_err(dev, "Bad file name size\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user