Skip to content

Commit c50038c

Browse files
[loader] Set status on success (#80951)
Emebedders that call `mono_assembly_load_from_full` may observe a non-NULL return value and an uninitialized MonoImageOpenStatus, which may lead to incorrect diagnostics in code like: ``` MonoImageOpenStatus status; MonoAssembly *assembly = mono_assembly_load_from_full (image, name, status, refonly); if (!assembly || status != MONO_IMAGE_OK) { fprintf(stderr, "Failure due to: %s\n", mono_image_strerror (status)); abort(); } ``` Which will print `Failure due to: Internal error` Addresses dotnet/android#7658 Co-authored-by: Aleksey Kliger <alklig@microsoft.com>
1 parent 8502110 commit c50038c

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

src/mono/mono/metadata/assembly.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2025,6 +2025,8 @@ mono_assembly_request_load_from (MonoImage *image, const char *fname,
20252025
mono_image_fixup_vtable (image);
20262026
#endif
20272027

2028+
*status = MONO_IMAGE_OK;
2029+
20282030
mono_assembly_invoke_load_hook_internal (req->alc, ass);
20292031

20302032
MONO_PROFILER_RAISE (assembly_loaded, (ass));

0 commit comments

Comments
 (0)