diff options
author | Jiri Slaby <jslaby@suse.cz> | 2011-05-26 19:25:17 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-26 20:12:34 -0400 |
commit | dcb3a08e69629ea65a3e9647da730bfaf670497d (patch) | |
tree | da89f661c9e0b2ae3d1dabcc3e27dcf06d2ae8fa /Documentation | |
parent | 02d54f092697b6046e466e447cc694b0e6ed45d0 (diff) |
Documentation: configfs examples crash fix
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>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/filesystems/configfs/configfs_example_explicit.c | 6 | ||||
-rw-r--r-- | Documentation/filesystems/configfs/configfs_example_macros.c | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/Documentation/filesystems/configfs/configfs_example_explicit.c b/Documentation/filesystems/configfs/configfs_example_explicit.c index fd53869f5633..1420233dfa55 100644 --- a/Documentation/filesystems/configfs/configfs_example_explicit.c +++ b/Documentation/filesystems/configfs/configfs_example_explicit.c | |||
@@ -464,9 +464,8 @@ static int __init configfs_example_init(void) | |||
464 | return 0; | 464 | return 0; |
465 | 465 | ||
466 | out_unregister: | 466 | out_unregister: |
467 | for (; i >= 0; i--) { | 467 | for (i--; i >= 0; i--) |
468 | configfs_unregister_subsystem(example_subsys[i]); | 468 | configfs_unregister_subsystem(example_subsys[i]); |
469 | } | ||
470 | 469 | ||
471 | return ret; | 470 | return ret; |
472 | } | 471 | } |
@@ -475,9 +474,8 @@ static void __exit configfs_example_exit(void) | |||
475 | { | 474 | { |
476 | int i; | 475 | int i; |
477 | 476 | ||
478 | for (i = 0; example_subsys[i]; i++) { | 477 | for (i = 0; example_subsys[i]; i++) |
479 | configfs_unregister_subsystem(example_subsys[i]); | 478 | configfs_unregister_subsystem(example_subsys[i]); |
480 | } | ||
481 | } | 479 | } |
482 | 480 | ||
483 | module_init(configfs_example_init); | 481 | module_init(configfs_example_init); |
diff --git a/Documentation/filesystems/configfs/configfs_example_macros.c b/Documentation/filesystems/configfs/configfs_example_macros.c index d8e30a0378aa..327dfbc640a9 100644 --- a/Documentation/filesystems/configfs/configfs_example_macros.c +++ b/Documentation/filesystems/configfs/configfs_example_macros.c | |||
@@ -427,9 +427,8 @@ static int __init configfs_example_init(void) | |||
427 | return 0; | 427 | return 0; |
428 | 428 | ||
429 | out_unregister: | 429 | out_unregister: |
430 | for (; i >= 0; i--) { | 430 | for (i--; i >= 0; i--) |
431 | configfs_unregister_subsystem(example_subsys[i]); | 431 | configfs_unregister_subsystem(example_subsys[i]); |
432 | } | ||
433 | 432 | ||
434 | return ret; | 433 | return ret; |
435 | } | 434 | } |
@@ -438,9 +437,8 @@ static void __exit configfs_example_exit(void) | |||
438 | { | 437 | { |
439 | int i; | 438 | int i; |
440 | 439 | ||
441 | for (i = 0; example_subsys[i]; i++) { | 440 | for (i = 0; example_subsys[i]; i++) |
442 | configfs_unregister_subsystem(example_subsys[i]); | 441 | configfs_unregister_subsystem(example_subsys[i]); |
443 | } | ||
444 | } | 442 | } |
445 | 443 | ||
446 | module_init(configfs_example_init); | 444 | module_init(configfs_example_init); |