diff --git a/symbols.c b/symbols.c index a2707051..8ad3ef71 100644 --- a/symbols.c +++ b/symbols.c @@ -5561,7 +5561,7 @@ value_search_module_6_4(ulong value, ulong *offset) sp = lm->symtable[t]; sp_end = lm->symend[t]; - if (value < sp->value) + if (value < sp->value || value > sp_end->value) continue; splast = NULL; @@ -5646,6 +5646,9 @@ value_search_module(ulong value, ulong *offset) if (sp->value > value) /* invalid -- between modules */ break; + if (sp_end->value < value) /* not within the module */ + continue; + /* * splast will contain the last module symbol encountered. * Note: "__insmod_"-type symbols will be set in splast only