From: Valentin Schneider <valentin.schneider@arm.com>
To: Colin King <colin.king@canonical.com>
Cc: Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH][next] sched/debug: fix memory corruption caused by multiple small reads of flags
Date: Thu, 29 Oct 2020 15:29:18 +0000 [thread overview]
Message-ID: <jhjft5xoxtd.mognet@arm.com> (raw)
In-Reply-To: <20201029151103.373410-1-colin.king@canonical.com>
On 29/10/20 15:11, Colin King wrote:
> Detected by running 'stress-ng --procfs 0' on 5.10-rc1; example splat:
>
That's definitely what I'll need to run next time I lay my dirty hands on
procfs.
> Link: https://bugzilla.kernel.org/show_bug.cgi?id 9919
> Reported-by: Jeff Bastian <jbastian@redhat.com>
> Fixes: 5b9f8ff7b320 ("sched/debug: Output SD flag names rather than their values")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
> ---
> kernel/sched/debug.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
> index 0655524..2357921 100644
> --- a/kernel/sched/debug.c
> +++ b/kernel/sched/debug.c
> @@ -251,7 +251,7 @@ static int sd_ctl_doflags(struct ctl_table *table, int write,
> unsigned long flags = *(unsigned long *)table->data;
> size_t data_size = 0;
> size_t len = 0;
> - char *tmp;
> + char *tmp, *buf;
> int idx;
>
> if (write)
> @@ -269,17 +269,17 @@ static int sd_ctl_doflags(struct ctl_table *table, int write,
> return 0;
> }
>
> - tmp = kcalloc(data_size + 1, sizeof(*tmp), GFP_KERNEL);
[...]
> - tmp += *ppos;
[...]
> - kfree(tmp);
Yeah, that's downright sloppy :( I can't remember which one it was in a
hurry, but I was "inspired" by another proc handler somewhere; I'll try to
find out if there's any issue in that one or if I really cannot shift the
blame elsewhere.
WARNING: multiple messages have this Message-ID (diff)
From: Valentin Schneider <valentin.schneider@arm.com>
To: Colin King <colin.king@canonical.com>
Cc: Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH][next] sched/debug: fix memory corruption caused by multiple small reads of flags
Date: Thu, 29 Oct 2020 15:29:18 +0000 [thread overview]
Message-ID: <jhjft5xoxtd.mognet@arm.com> (raw)
In-Reply-To: <20201029151103.373410-1-colin.king@canonical.com>
On 29/10/20 15:11, Colin King wrote:
> Detected by running 'stress-ng --procfs 0' on 5.10-rc1; example splat:
>
That's definitely what I'll need to run next time I lay my dirty hands on
procfs.
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=209919
> Reported-by: Jeff Bastian <jbastian@redhat.com>
> Fixes: 5b9f8ff7b320 ("sched/debug: Output SD flag names rather than their values")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
> ---
> kernel/sched/debug.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
> index 0655524..2357921 100644
> --- a/kernel/sched/debug.c
> +++ b/kernel/sched/debug.c
> @@ -251,7 +251,7 @@ static int sd_ctl_doflags(struct ctl_table *table, int write,
> unsigned long flags = *(unsigned long *)table->data;
> size_t data_size = 0;
> size_t len = 0;
> - char *tmp;
> + char *tmp, *buf;
> int idx;
>
> if (write)
> @@ -269,17 +269,17 @@ static int sd_ctl_doflags(struct ctl_table *table, int write,
> return 0;
> }
>
> - tmp = kcalloc(data_size + 1, sizeof(*tmp), GFP_KERNEL);
[...]
> - tmp += *ppos;
[...]
> - kfree(tmp);
Yeah, that's downright sloppy :( I can't remember which one it was in a
hurry, but I was "inspired" by another proc handler somewhere; I'll try to
find out if there's any issue in that one or if I really cannot shift the
blame elsewhere.
next prev parent reply other threads:[~2020-10-29 15:29 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-29 15:11 [PATCH][next] sched/debug: fix memory corruption caused by multiple small reads of flags Colin King
2020-10-29 15:11 ` Colin King
2020-10-29 15:29 ` Valentin Schneider [this message]
2020-10-29 15:29 ` Valentin Schneider
2020-10-29 15:42 ` Valentin Schneider
2020-11-10 16:54 ` Peter Zijlstra
2020-11-10 16:54 ` Peter Zijlstra
2020-11-11 8:23 ` [tip: sched/urgent] sched/debug: Fix " tip-bot2 for Colin Ian King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jhjft5xoxtd.mognet@arm.com \
--to=valentin.schneider@arm.com \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=colin.king@canonical.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=vincent.guittot@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.