Skip to content

Commit 147fdde

Browse files
committed
Fixed potential endless loop while searching for resources (github issue #10).
1 parent fc6a58a commit 147fdde

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

MemoryModule.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -563,9 +563,9 @@ static PIMAGE_RESOURCE_DIRECTORY_ENTRY _MemorySearchResourceEntry(
563563
middle = (start + end) >> 1;
564564
entryName = (WORD) entries[middle].Name;
565565
if (check < entryName) {
566-
end = middle;
566+
end = (end != middle ? middle : middle-1);
567567
} else if (check > entryName) {
568-
start = middle;
568+
start = (start != middle ? middle : middle+1);
569569
} else {
570570
result = &entries[middle];
571571
break;
@@ -599,9 +599,9 @@ static PIMAGE_RESOURCE_DIRECTORY_ENTRY _MemorySearchResourceEntry(
599599
cmp = wcsncmp(key, resourceString->NameString, resourceString->Length);
600600
#endif
601601
if (cmp < 0) {
602-
end = middle;
602+
end = (middle != end ? middle : middle-1);
603603
} else if (cmp > 0) {
604-
start = middle;
604+
start = (middle != start ? middle : middle+1);
605605
} else {
606606
result = &entries[middle];
607607
break;

0 commit comments

Comments
 (0)