Message ID | 20200422095319.6181-2-kai.heng.feng@canonical.com |
---|---|
State | New |
Headers | show |
Series | Fix potential null pointer dereference on kernfs | expand |
On 22.04.20 11:53, Kai-Heng Feng wrote: > From: Peng Wang <rocking@whu.edu.cn> > > BugLink: https://bugs.launchpad.net/bugs/1874221 > > Get root safely after kn is ensureed to be not null. > > Signed-off-by: Peng Wang <rocking@whu.edu.cn> > Acked-by: Tejun Heo <tj@kernel.org> > Link: https://lore.kernel.org/r/20190708151611.13242-1-rocking@whu.edu.cn > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > (cherry picked from commit 2fd60da46da76948b8cc561ae8cc902209686253) > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> > --- > fs/kernfs/dir.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c > index a5a65de50318..c7b31e1f095b 100644 > --- a/fs/kernfs/dir.c > +++ b/fs/kernfs/dir.c > @@ -430,7 +430,6 @@ struct kernfs_node *kernfs_get_active(struct kernfs_node *kn) > */ > void kernfs_put_active(struct kernfs_node *kn) > { > - struct kernfs_root *root = kernfs_root(kn); > int v; > > if (unlikely(!kn)) > @@ -442,7 +441,7 @@ void kernfs_put_active(struct kernfs_node *kn) > if (likely(v != KN_DEACTIVATED_BIAS)) > return; > > - wake_up_all(&root->deactivate_waitq); > + wake_up_all(&kernfs_root(kn)->deactivate_waitq); > } > > /** >
On 22/04/2020 10:53, Kai-Heng Feng wrote: > From: Peng Wang <rocking@whu.edu.cn> > > BugLink: https://bugs.launchpad.net/bugs/1874221 > > Get root safely after kn is ensureed to be not null. > > Signed-off-by: Peng Wang <rocking@whu.edu.cn> > Acked-by: Tejun Heo <tj@kernel.org> > Link: https://lore.kernel.org/r/20190708151611.13242-1-rocking@whu.edu.cn > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > (cherry picked from commit 2fd60da46da76948b8cc561ae8cc902209686253) > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > --- > fs/kernfs/dir.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c > index a5a65de50318..c7b31e1f095b 100644 > --- a/fs/kernfs/dir.c > +++ b/fs/kernfs/dir.c > @@ -430,7 +430,6 @@ struct kernfs_node *kernfs_get_active(struct kernfs_node *kn) > */ > void kernfs_put_active(struct kernfs_node *kn) > { > - struct kernfs_root *root = kernfs_root(kn); > int v; > > if (unlikely(!kn)) > @@ -442,7 +441,7 @@ void kernfs_put_active(struct kernfs_node *kn) > if (likely(v != KN_DEACTIVATED_BIAS)) > return; > > - wake_up_all(&root->deactivate_waitq); > + wake_up_all(&kernfs_root(kn)->deactivate_waitq); > } > > /** > upstream cherry pick, looks good, thank you. Acked-by: Colin Ian King <colin.king@canonical.com>
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c index a5a65de50318..c7b31e1f095b 100644 --- a/fs/kernfs/dir.c +++ b/fs/kernfs/dir.c @@ -430,7 +430,6 @@ struct kernfs_node *kernfs_get_active(struct kernfs_node *kn) */ void kernfs_put_active(struct kernfs_node *kn) { - struct kernfs_root *root = kernfs_root(kn); int v; if (unlikely(!kn)) @@ -442,7 +441,7 @@ void kernfs_put_active(struct kernfs_node *kn) if (likely(v != KN_DEACTIVATED_BIAS)) return; - wake_up_all(&root->deactivate_waitq); + wake_up_all(&kernfs_root(kn)->deactivate_waitq); } /**