aboutsummaryrefslogtreecommitdiffstats
path: root/com32/lib/sys/module/common.c
diff options
context:
space:
mode:
authorChandramouli Narayanan <chandramouli.narayanan@intel.com>2012-09-05 07:49:49 +0100
committerMatt Fleming <matt.fleming@intel.com>2012-09-05 07:49:49 +0100
commita40bb65a4d1351c7c2b414152186f63aa5ea2a07 (patch)
tree30fa609cd994a98b98aa60843d998175f4488523 /com32/lib/sys/module/common.c
parent2088016394a3e0cecbddda97ac71a895ae8513ff (diff)
downloadsyslinux-a40bb65a4d1351c7c2b414152186f63aa5ea2a07.tar.gz
syslinux-a40bb65a4d1351c7c2b414152186f63aa5ea2a07.tar.xz
syslinux-a40bb65a4d1351c7c2b414152186f63aa5ea2a07.zip
module: Fixed the upper limit in symbol table walk through
Number of entries in symbol table should be sized by the table entry size. Without this, the loading of modules takes forever due to walking all over the memory. Signed-off-by: Chandramouli Narayanan <chandramouli.narayanan@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'com32/lib/sys/module/common.c')
-rw-r--r--com32/lib/sys/module/common.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/com32/lib/sys/module/common.c b/com32/lib/sys/module/common.c
index 6e63907d..30c57b4b 100644
--- a/com32/lib/sys/module/common.c
+++ b/com32/lib/sys/module/common.c
@@ -47,7 +47,7 @@ void print_elf_symbols(struct elf_module *module) {
unsigned int i;
Elf32_Sym *crt_sym;
- for (i = 1; i < module->symtable_size; i++)
+ for (i = 1; i < module->symtable_size/module->syment_size; i++)
{
crt_sym = (Elf32_Sym*)(module->sym_table + i*module->syment_size);
@@ -315,7 +315,7 @@ int check_symbols(struct elf_module *module)
int strong_count;
int weak_count;
- for(i = 1; i < module->symtable_size; i++)
+ for (i = 1; i < module->symtable_size/module->syment_size; i++)
{
crt_sym = symbol_get_entry(module, i);
crt_name = module->str_table + crt_sym->st_name;
@@ -535,7 +535,7 @@ static Elf32_Sym *module_find_symbol_iterate(const char *name,struct elf_module
unsigned int i;
Elf32_Sym *crt_sym;
- for (i=1; i < module->symtable_size; i++)
+ for (i = 1; i < module->symtable_size/module->syment_size; i++)
{
crt_sym = symbol_get_entry(module, i);
if (strcmp(name, module->str_table + crt_sym->st_name) == 0)