Fixed potential endless loop while searching for resources (github issue #10).

This commit is contained in:
Joachim Bauch
2013-04-12 18:35:12 +02:00
parent fc6a58a785
commit 147fdde848
+4 -4
View File
@@ -563,9 +563,9 @@ static PIMAGE_RESOURCE_DIRECTORY_ENTRY _MemorySearchResourceEntry(
middle = (start + end) >> 1; middle = (start + end) >> 1;
entryName = (WORD) entries[middle].Name; entryName = (WORD) entries[middle].Name;
if (check < entryName) { if (check < entryName) {
end = middle; end = (end != middle ? middle : middle-1);
} else if (check > entryName) { } else if (check > entryName) {
start = middle; start = (start != middle ? middle : middle+1);
} else { } else {
result = &entries[middle]; result = &entries[middle];
break; break;
@@ -599,9 +599,9 @@ static PIMAGE_RESOURCE_DIRECTORY_ENTRY _MemorySearchResourceEntry(
cmp = wcsncmp(key, resourceString->NameString, resourceString->Length); cmp = wcsncmp(key, resourceString->NameString, resourceString->Length);
#endif #endif
if (cmp < 0) { if (cmp < 0) {
end = middle; end = (middle != end ? middle : middle-1);
} else if (cmp > 0) { } else if (cmp > 0) {
start = middle; start = (middle != start ? middle : middle+1);
} else { } else {
result = &entries[middle]; result = &entries[middle];
break; break;