Skip to content

Commit 54906ea

Browse files
authored
[wasm][debugger] Fix check for already loaded assemblies (#43747)
We send assembly loaded events to the proxy based off events from the debugger engine. And we check that it isn't an assembly that was already loaded. This check has a bug in computing the assembly name, from the filename, which caused these events to be sent even for already loaded assemblies.
1 parent edc8aaa commit 54906ea

File tree

2 files changed

+2
-4
lines changed

2 files changed

+2
-4
lines changed

src/mono/wasm/runtime/driver.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,8 @@ mono_wasm_assembly_already_added (const char *assembly_name)
213213

214214
WasmAssembly *entry = assemblies;
215215
while (entry != NULL) {
216-
if (strlen(entry->assembly.name - 4) == strlen(assembly_name) && strncmp (entry->assembly.name, assembly_name, strlen(entry->assembly.name - 4)) == 0)
216+
int entry_name_minus_extn_len = strlen(entry->assembly.name) - 4;
217+
if (entry_name_minus_extn_len == strlen(assembly_name) && strncmp (entry->assembly.name, assembly_name, entry_name_minus_extn_len) == 0)
217218
return 1;
218219
entry = entry->next;
219220
}

src/mono/wasm/runtime/library_mono.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2365,9 +2365,6 @@ var MonoSupportLib = {
23652365
if (MONO.mono_wasm_runtime_is_ready !== true)
23662366
return;
23672367

2368-
if (!this.mono_wasm_assembly_already_added)
2369-
this.mono_wasm_assembly_already_added = Module.cwrap ("mono_wasm_assembly_already_added", 'number', ['string']);
2370-
23712368
const assembly_name_str = assembly_name !== 0 ? Module.UTF8ToString(assembly_name).concat('.dll') : '';
23722369

23732370
const assembly_data = new Uint8Array(Module.HEAPU8.buffer, assembly_ptr, assembly_len);

0 commit comments

Comments
 (0)