[lvc-project] [PATCH v6.1] mm/damon: get rid of overlapping areas
Fedor Pchelkin
pchelkin at ispras.ru
Wed Jun 24 13:38:22 MSK 2026
Патч нужен и для 6.12 наверно, не только 6.1.
On Wed, 24. Jun 12:22, Markov Gleb wrote:
> Change sscanf() function to avoid possible overlap situation.
Наверно не change, а replace чем-то другим. Ведь не меняете же
внутренности функции sscanf().
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: 4bc05954d007 ("mm/damon: implement a debugfs-based user space interface")
> Signed-off-by: Gleb Markov <markov.gi at npc-ksb.ru>
> ---
> mm/damon/dbgfs.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c
> index b3f454a5c682..62b1e7474445 100644
> --- a/mm/damon/dbgfs.c
> +++ b/mm/damon/dbgfs.c
> @@ -1003,17 +1003,20 @@ static ssize_t dbgfs_monitor_on_write(struct file *file,
> {
> ssize_t ret;
> char *kbuf;
> + char *sd_kbuf;
>
> kbuf = user_input_str(buf, count, ppos);
> if (IS_ERR(kbuf))
> return PTR_ERR(kbuf);
>
> /* Remove white space */
> - if (sscanf(kbuf, "%s", kbuf) != 1) {
> + sd_kbuf = strim(kbuf);
> + if (*sd_kbuf == '\0') {
> kfree(kbuf);
> return -EINVAL;
> }
sd_kbuf теперь указывает на первый непробельный символ входной
буфер-строки. Однако сам kbuf, с которым дальше в функции идёт работа,
продолжает указывать на начало исходного буфера с потенциально
пробельными символами в начале.
Если хотели убрать пробелы из начала, текущий патч этого не решает.
Резона в добавлении sd_kbuf не вижу. В целом достаточно
kbuf = strim(kbuf);
>
> +
Зачем-то добавленная лишняя пустая строка.
> mutex_lock(&damon_dbgfs_lock);
> if (!strncmp(kbuf, "on", count)) {
> int i;
> --
> 2.43.0
More information about the lvc-project
mailing list