[RHEL7,COMMIT] ve/sysfs: handle NULL sysfs_dirent in sysfs_next_entry()

Submitted by Konstantin Khorenko on June 18, 2018, 10:06 a.m.

Details

Message ID 201806181006.w5IA6tN8020775@finist_ce7.work
State New
Series "ve/sysfs: handle NULL sysfs_dirent in sysfs_next_entry()"
Headers show

Commit Message

Konstantin Khorenko June 18, 2018, 10:06 a.m.
The commit is pushed to "branch-rh7-3.10.0-693.21.1.vz7.50.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-693.21.1.vz7.50.11
------>
commit ca5aea989561f7ef4a2b2054f8d3c9cabe57023e
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Mon Jun 18 13:06:55 2018 +0300

    ve/sysfs: handle NULL sysfs_dirent in sysfs_next_entry()
    
    This patch fixes vz7 commit f9aed8d8fb35 ("VE/SYSFS: hide forbidden entries in container").
    It spitted sysfs_dir_next_pos() into few parts including creation of sysfs_next_entry().
    Originally this part of code worked correctly if sysfs_dir_pos had return NULL,
    however according check was lost during modification.
    
    This patch restores lost check, now sysfs_next_entry() will not crash if cur=NULL
    
    Fixes: f9aed8d8fb35 ("VE/SYSFS: hide forbidden entries in container")
    https://pmc.acronis.com/browse/VSTOR-11122
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
---
 fs/sysfs/dir.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index f9294c00b571..485d77b0d419 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -1005,7 +1005,7 @@  static struct sysfs_dirent *sysfs_dir_pos(struct sysfs_dirent *parent_sd,
 
 static struct sysfs_dirent *sysfs_next_entry(struct sysfs_dirent *cur)
 {
-	struct rb_node *node = rb_next(&cur->s_rb);
+	struct rb_node *node = cur ? rb_next(&cur->s_rb) : NULL;
 
 	return node ? to_sysfs_dirent(node) : NULL;
 }