Fix off-by-one in max ordinals check

This commit is contained in:
Silent 2019-09-08 22:21:32 +02:00 committed by Radosław Gliński
parent b76b099ed5
commit 704058d638
2 changed files with 2 additions and 2 deletions

View File

@ -63,7 +63,7 @@ Export* ExportResolver::GetExportByOrdinal(const char* module_name,
for (const auto& table : tables_) {
if (std::strncmp(module_name, table.module_name(),
std::strlen(table.module_name())) == 0) {
if (ordinal > table.exports_by_ordinal().size()) {
if (ordinal >= table.exports_by_ordinal().size()) {
return nullptr;
}
return table.exports_by_ordinal().at(ordinal);

View File

@ -126,7 +126,7 @@ uint32_t XexModule::GetProcAddress(uint16_t ordinal) const {
xex_security_info()->export_table);
ordinal -= export_table->base;
if (ordinal > export_table->count) {
if (ordinal >= export_table->count) {
XELOGE("GetProcAddress(%.3X): ordinal out of bounds", ordinal);
return 0;
}