aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/dlfcn_test.cpp18
-rw-r--r--tests/libs/check_rtld_next_from_library.cpp17
2 files changed, 18 insertions, 17 deletions
diff --git a/tests/dlfcn_test.cpp b/tests/dlfcn_test.cpp
index ad8444e93..f72df8164 100644
--- a/tests/dlfcn_test.cpp
+++ b/tests/dlfcn_test.cpp
@@ -1069,17 +1069,17 @@ TEST(dlfcn, rtld_next_known_symbol) {
// Check that RTLD_NEXT of a libc symbol works in dlopened library
TEST(dlfcn, rtld_next_from_library) {
- void* library_with_close = dlopen("libtest_check_rtld_next_from_library.so", RTLD_NOW);
- ASSERT_TRUE(library_with_close != nullptr) << dlerror();
- void* expected_addr = dlsym(RTLD_DEFAULT, "close");
+ void* library_with_fclose = dlopen("libtest_check_rtld_next_from_library.so", RTLD_NOW);
+ ASSERT_TRUE(library_with_fclose != nullptr) << dlerror();
+ void* expected_addr = dlsym(RTLD_DEFAULT, "fclose");
ASSERT_TRUE(expected_addr != nullptr) << dlerror();
- typedef void* (*get_libc_close_ptr_fn_t)();
- get_libc_close_ptr_fn_t get_libc_close_ptr =
- reinterpret_cast<get_libc_close_ptr_fn_t>(dlsym(library_with_close, "get_libc_close_ptr"));
- ASSERT_TRUE(get_libc_close_ptr != nullptr) << dlerror();
- ASSERT_EQ(expected_addr, get_libc_close_ptr());
+ typedef void* (*get_libc_fclose_ptr_fn_t)();
+ get_libc_fclose_ptr_fn_t get_libc_fclose_ptr =
+ reinterpret_cast<get_libc_fclose_ptr_fn_t>(dlsym(library_with_fclose, "get_libc_fclose_ptr"));
+ ASSERT_TRUE(get_libc_fclose_ptr != nullptr) << dlerror();
+ ASSERT_EQ(expected_addr, get_libc_fclose_ptr());
- dlclose(library_with_close);
+ dlclose(library_with_fclose);
}
diff --git a/tests/libs/check_rtld_next_from_library.cpp b/tests/libs/check_rtld_next_from_library.cpp
index 45d8eea35..fb15e2abc 100644
--- a/tests/libs/check_rtld_next_from_library.cpp
+++ b/tests/libs/check_rtld_next_from_library.cpp
@@ -15,22 +15,23 @@
*/
#include <dlfcn.h>
+#include <stdio.h>
#include <stdlib.h>
-static void* g_libc_close_ptr;
+static void* g_libc_fclose_ptr;
-static void __attribute__((constructor)) __libc_close_lookup() {
- g_libc_close_ptr = dlsym(RTLD_NEXT, "close");
+static void __attribute__((constructor)) __libc_fclose_lookup() {
+ g_libc_fclose_ptr = dlsym(RTLD_NEXT, "fclose");
}
-// A libc function used for RTLD_NEXT
-// This function in not supposed to be called
-extern "C" int __attribute__((weak)) close(int) {
+// A libc function used for RTLD_NEXT.
+// This function in not supposed to be called.
+extern "C" int __attribute__((weak)) fclose(FILE*) {
abort();
}
-extern "C" void* get_libc_close_ptr() {
- return g_libc_close_ptr;
+extern "C" void* get_libc_fclose_ptr() {
+ return g_libc_fclose_ptr;
}