Documentation: configfs examples crash fix
Jiri Slaby [Thu, 26 May 2011 23:25:17 +0000 (16:25 -0700)]
When configfs_register_subsystem() fails, we unregister too many
subsystems in configfs_example_init.  Decrement i by one to not unregister
non-registered subsystem.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Documentation/filesystems/configfs/configfs_example_explicit.c
Documentation/filesystems/configfs/configfs_example_macros.c

index fd53869..1420233 100644 (file)
@@ -464,9 +464,8 @@ static int __init configfs_example_init(void)
        return 0;
 
 out_unregister:
-       for (; i >= 0; i--) {
+       for (i--; i >= 0; i--)
                configfs_unregister_subsystem(example_subsys[i]);
-       }
 
        return ret;
 }
@@ -475,9 +474,8 @@ static void __exit configfs_example_exit(void)
 {
        int i;
 
-       for (i = 0; example_subsys[i]; i++) {
+       for (i = 0; example_subsys[i]; i++)
                configfs_unregister_subsystem(example_subsys[i]);
-       }
 }
 
 module_init(configfs_example_init);
index d8e30a0..327dfbc 100644 (file)
@@ -427,9 +427,8 @@ static int __init configfs_example_init(void)
        return 0;
 
 out_unregister:
-       for (; i >= 0; i--) {
+       for (i--; i >= 0; i--)
                configfs_unregister_subsystem(example_subsys[i]);
-       }
 
        return ret;
 }
@@ -438,9 +437,8 @@ static void __exit configfs_example_exit(void)
 {
        int i;
 
-       for (i = 0; example_subsys[i]; i++) {
+       for (i = 0; example_subsys[i]; i++)
                configfs_unregister_subsystem(example_subsys[i]);
-       }
 }
 
 module_init(configfs_example_init);