summaryrefslogtreecommitdiffhomepage
path: root/gui/src
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2021-07-05 12:02:19 +0200
committerOskar Nyberg <oskar@mullvad.net>2021-07-05 21:38:38 +0200
commitdba5f7dd8eb0ddfd3ae8409641e5411200fb345d (patch)
tree62974b50162497a44d44fdadcc9306943196767a /gui/src
parent039f3a10b46bc634afc86490e7af7040175b9997 (diff)
downloadmullvadvpn-dba5f7dd8eb0ddfd3ae8409641e5411200fb345d.tar.xz
mullvadvpn-dba5f7dd8eb0ddfd3ae8409641e5411200fb345d.zip
Improve resource table parsing
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/main/windows-split-tunneling.ts15
1 files changed, 6 insertions, 9 deletions
diff --git a/gui/src/main/windows-split-tunneling.ts b/gui/src/main/windows-split-tunneling.ts
index 148709885d..a8915595e5 100644
--- a/gui/src/main/windows-split-tunneling.ts
+++ b/gui/src/main/windows-split-tunneling.ts
@@ -453,15 +453,12 @@ async function getResourceTreeLeafOffsets(
const leaves: number[] = [];
- let offset = tableOffset + table.size;
- for (let i = 0; i < numberOfNameEntries + numberOfIdEntries; i++) {
- const entryOffset = offset;
- const entry = await Value.fromFile(fileHandle, entryOffset, IMAGE_RESOURCE_DIRECTORY_ID_ENTRY);
- offset += entry.size;
-
- if (i < numberOfNameEntries) {
- continue;
- }
+ for (let i = numberOfNameEntries; i < numberOfNameEntries + numberOfIdEntries; i++) {
+ const offset =
+ tableOffset +
+ Value.sizeOf(IMAGE_RESOURCE_DIRECTORY) +
+ i * Value.sizeOf(IMAGE_RESOURCE_DIRECTORY_ID_ENTRY);
+ const entry = await Value.fromFile(fileHandle, offset, IMAGE_RESOURCE_DIRECTORY_ID_ENTRY);
const id = entry.get('Id').value();
if (!ids.includes(id)) {