mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
sparc: led: avoid trimming a newline from empty writes
[ Upstream commit7eb475e8a7] led_proc_write() duplicates up to LED_MAX_LENGTH bytes with memdup_user_nul() and then unconditionally inspects buf[count - 1] to strip a trailing newline. A zero-length write therefore reads one byte before the duplicated buffer. The previous version rejected empty writes, but empty input already falls through to the existing default case and turns the LED off like any other unrecognized string. Preserve that behavior and only skip the newline trim when there is no input byte to inspect. Fixes:ee1858d312("[SPARC]: Add sun4m LED driver.") Suggested-by: Andreas Larsson <andreas@gaisler.com> Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Signed-off-by: Andreas Larsson <andreas@gaisler.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5feaaa1d34
commit
e1a215900d
@@ -78,7 +78,7 @@ static ssize_t led_proc_write(struct file *file, const char __user *buffer,
|
||||
return PTR_ERR(buf);
|
||||
|
||||
/* work around \n when echo'ing into proc */
|
||||
if (buf[count - 1] == '\n')
|
||||
if (count > 0 && buf[count - 1] == '\n')
|
||||
buf[count - 1] = '\0';
|
||||
|
||||
/* before we change anything we want to stop any running timers,
|
||||
|
||||
Reference in New Issue
Block a user