[syslinux:elflink] module: Check for NULL ctors and dtors

syslinux-bot for Matt Fleming matt.fleming at intel.com
Wed Jan 23 07:09:10 PST 2013


Commit-ID:  4027dbf9df88e3feaa3744c6622e4ae7cf8ecd6e
Gitweb:     http://www.syslinux.org/commit/4027dbf9df88e3feaa3744c6622e4ae7cf8ecd6e
Author:     Matt Fleming <matt.fleming at intel.com>
AuthorDate: Wed, 23 Jan 2013 13:40:24 +0000
Committer:  Matt Fleming <matt.fleming at intel.com>
CommitDate: Wed, 23 Jan 2013 15:05:28 +0000

module: Check for NULL ctors and dtors

Don't dereference a NULL ctor/dtor as that can cause us to crash.

Signed-off-by: Matt Fleming <matt.fleming at intel.com>

---
 com32/lib/sys/module/common.c     | 2 +-
 com32/lib/sys/module/elf_module.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/com32/lib/sys/module/common.c b/com32/lib/sys/module/common.c
index deb2bcc..8547036 100644
--- a/com32/lib/sys/module/common.c
+++ b/com32/lib/sys/module/common.c
@@ -425,7 +425,7 @@ int _module_unload(struct elf_module *module) {
 int module_unload(struct elf_module *module) {
 	module_ctor_t *dtor;
 
-	for (dtor = module->dtors; *dtor; dtor++)
+	for (dtor = module->dtors; dtor && *dtor; dtor++)
 		(*dtor) ();
 
 	return _module_unload(module);
diff --git a/com32/lib/sys/module/elf_module.c b/com32/lib/sys/module/elf_module.c
index c4e9d41..e61480f 100644
--- a/com32/lib/sys/module/elf_module.c
+++ b/com32/lib/sys/module/elf_module.c
@@ -604,7 +604,7 @@ int module_load(struct elf_module *module) {
 			(module->exit_func == NULL) ? NULL : *(module->exit_func));
 	*/
 
-	for (ctor = module->ctors; *ctor; ctor++)
+	for (ctor = module->ctors; ctor && *ctor; ctor++)
 		(*ctor) ();
 
 	return 0;


More information about the Syslinux-commits mailing list