Skip to content

Commit 0a7d5d1

Browse files
authored
Show dlerror() only if it's actually non-NULL (JuliaLang#44856)
This prevents a segmentation fault when showing an error message when libjulia can't be loaded.
1 parent 3fb132f commit 0a7d5d1

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

cli/loader_lib.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ static void * load_library(const char * rel_path, const char * src_dir, int err)
8282
wchar_to_utf8(wmsg, err, 255);
8383
jl_loader_print_stderr3("Message:", err, "\n");
8484
#else
85-
jl_loader_print_stderr3("Message:", dlerror(), "\n");
85+
char *dlerr = dlerror();
86+
if (dlerr != NULL) {
87+
jl_loader_print_stderr3("Message:", dlerr, "\n");
88+
}
8689
#endif
8790
exit(1);
8891
}
@@ -133,7 +136,10 @@ JL_DLLEXPORT const char * jl_get_libdir()
133136
Dl_info info;
134137
if (!dladdr(&jl_get_libdir, &info)) {
135138
jl_loader_print_stderr("ERROR: Unable to dladdr(&jl_get_libdir)!\n");
136-
jl_loader_print_stderr3("Message:", dlerror(), "\n");
139+
char *dlerr = dlerror();
140+
if (dlerr != NULL) {
141+
jl_loader_print_stderr3("Message:", dlerr, "\n");
142+
}
137143
exit(1);
138144
}
139145
strcpy(lib_dir, info.dli_fname);

0 commit comments

Comments
 (0)