[compiler-rt] Revert "[sanitizer] intercept getservent_r, getservbyname_r, getservbyport_r" (PR #133358)
Florian Mayer via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 27 19:50:56 PDT 2025
https://github.com/fmayer created https://github.com/llvm/llvm-project/pull/133358
Reverts llvm/llvm-project#133339
>From 6f5c63325cea5e6df071fac83161883406ad5844 Mon Sep 17 00:00:00 2001
From: Florian Mayer <florian.mayer at bitsrc.org>
Date: Thu, 27 Mar 2025 22:50:45 -0400
Subject: [PATCH] =?UTF-8?q?Revert=20"[sanitizer]=20intercept=20getservent?=
=?UTF-8?q?=5Fr,=20getservbyname=5Fr,=20getservbyport=5Fr=20=E2=80=A6"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit aa3149d204ed019c53eedd1bb00a315c0db41270.
---
compiler-rt/lib/msan/tests/msan_test.cpp | 69 -------------------
.../sanitizer_common_interceptors.inc | 63 -----------------
.../sanitizer_platform_interceptors.h | 4 --
.../sanitizer_platform_limits_posix.h | 9 ---
4 files changed, 145 deletions(-)
diff --git a/compiler-rt/lib/msan/tests/msan_test.cpp b/compiler-rt/lib/msan/tests/msan_test.cpp
index 8b7df85e0ff04..a126dd4fdd55e 100644
--- a/compiler-rt/lib/msan/tests/msan_test.cpp
+++ b/compiler-rt/lib/msan/tests/msan_test.cpp
@@ -4908,74 +4908,5 @@ TEST(MemorySanitizer, timer_create) {
EXPECT_POISONED(timer2);
timer_delete(timer);
}
-
-TEST(MemorySanitizer, getservent_r) {
- struct servent result_buf;
- struct servent *result;
- char buf[1024];
- EXPECT_POISONED(result_buf);
- EXPECT_POISONED(result);
- EXPECT_POISONED(buf);
- ASSERT_EQ(getservent_r(&result_buf, buf, sizeof(buf), &result), 0);
- EXPECT_NOT_POISONED(result);
- ASSERT_NE(result, nullptr);
- EXPECT_NOT_POISONED(result_buf);
- EXPECT_NOT_POISONED(buf);
-}
-
-TEST(MemorySanitizer, getservbyname_r) {
- struct servent result_buf;
- struct servent *result;
- char buf[1024];
- EXPECT_POISONED(result_buf);
- EXPECT_POISONED(result);
- EXPECT_POISONED(buf);
- ASSERT_EQ(
- getservbyname_r("ssh", nullptr, &result_buf, buf, sizeof(buf), &result),
- 0);
- EXPECT_NOT_POISONED(result);
- // If this fails, check /etc/services if "ssh" exists. I picked this because
- // it should exist everywhere, if it doesn't, I am sorry. Disable the test
- // then please.
- ASSERT_NE(result, nullptr);
- EXPECT_NOT_POISONED(result_buf);
- EXPECT_NOT_POISONED(buf);
-}
-
-TEST(MemorySanitizer, getservbyname_r_unknown) {
- struct servent result_buf;
- struct servent *result;
- char buf[1024];
- EXPECT_POISONED(result_buf);
- EXPECT_POISONED(result);
- EXPECT_POISONED(buf);
- ASSERT_EQ(getservbyname_r("invalidhadfuiasdhi", nullptr, &result_buf, buf,
- sizeof(buf), &result),
- 0);
- EXPECT_NOT_POISONED(result);
- ASSERT_EQ(result, nullptr);
- EXPECT_POISONED(result_buf);
- EXPECT_POISONED(buf);
-}
-
-TEST(MemorySanitizer, getservbyport_r) {
- struct servent result_buf;
- struct servent *result;
- char buf[1024];
- EXPECT_POISONED(result_buf);
- EXPECT_POISONED(result);
- EXPECT_POISONED(buf);
- ASSERT_EQ(getservbyport_r(htons(22), nullptr, &result_buf, buf, sizeof(buf),
- &result),
- 0);
- EXPECT_NOT_POISONED(result);
- // If this fails, check /etc/services if "ssh" exists. I picked this because
- // it should exist everywhere, if it doesn't, I am sorry. Disable the test
- // then please.
- ASSERT_NE(result, nullptr);
- EXPECT_NOT_POISONED(result_buf);
- EXPECT_NOT_POISONED(buf);
-}
-
#endif
} // namespace
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
index 1be8a901ab06e..761dbd3f5a679 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
@@ -10279,66 +10279,6 @@ INTERCEPTOR(SSIZE_T, freadlink, int fd, char *buf, SIZE_T bufsiz) {
# define INIT_FREADLINK
#endif
-UNUSED static void HandleGetServentReentrantResult(
- void *ctx, int res, struct __sanitizer_servent *result_buf, char *buf,
- SIZE_T buflen, struct __sanitizer_servent **result) {
- if (res)
- return;
- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, (char *)result, sizeof(void *));
- if (*result) {
- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, (char *)*result,
- sizeof(__sanitizer_servent));
- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, buf, buflen);
- }
-}
-
-#if SANITIZER_INTERCEPT_GETSERVENT_R
-INTERCEPTOR(int, getservent_r, struct __sanitizer_servent *result_buf,
- char *buf, SIZE_T buflen, struct __sanitizer_servent **result) {
- void *ctx;
- COMMON_INTERCEPTOR_ENTER(ctx, getservent_r, result_buf, buf, buflen, result);
- int res = REAL(getservent_r)(result_buf, buf, buflen, result);
- HandleGetServentReentrantResult(ctx, res, result_buf, buf, buflen, result);
- return res;
-}
-# define INIT_GETSERVENT_R COMMON_INTERCEPT_FUNCTION(getservent_r)
-#else
-# define INIT_GETSERVENT_R
-#endif
-
-#if SANITIZER_INTERCEPT_GETSERVBYNAME_R
-INTERCEPTOR(int, getservbyname_r, const char *name, const char *proto,
- struct __sanitizer_servent *result_buf, char *buf, SIZE_T buflen,
- struct __sanitizer_servent **result) {
- void *ctx;
- COMMON_INTERCEPTOR_ENTER(ctx, getservbyname_r, name, proto, result_buf, buf,
- buflen, result);
- COMMON_INTERCEPTOR_READ_STRING(ctx, name, internal_strlen(name));
- int res = REAL(getservbyname_r)(name, proto, result_buf, buf, buflen, result);
- HandleGetServentReentrantResult(ctx, res, result_buf, buf, buflen, result);
- return res;
-}
-# define INIT_GETSERVBYNAME_R COMMON_INTERCEPT_FUNCTION(getservbyname_r)
-#else
-# define INIT_GETSERVBYNAME_R
-#endif
-
-#if SANITIZER_INTERCEPT_GETSERVBYPORT_R
-INTERCEPTOR(int, getservbyport_r, int port, const char *proto,
- struct __sanitizer_servent *result_buf, char *buf, SIZE_T buflen,
- struct __sanitizer_servent **result) {
- void *ctx;
- COMMON_INTERCEPTOR_ENTER(ctx, getservbyport_r, port, proto, result_buf, buf,
- buflen, result);
- int res = REAL(getservbyport_r)(port, proto, result_buf, buf, buflen, result);
- HandleGetServentReentrantResult(ctx, res, result_buf, buf, buflen, result);
- return res;
-}
-# define INIT_GETSERVBYPORT_R COMMON_INTERCEPT_FUNCTION(getservbyport_r)
-#else
-# define INIT_GETSERVBYPORT_R
-#endif
-
#include "sanitizer_common_interceptors_netbsd_compat.inc"
namespace __sanitizer {
@@ -10664,7 +10604,4 @@ static void InitializeCommonInterceptors() {
INIT_FREADLINK;
INIT___PRINTF_CHK;
- INIT_GETSERVENT_R;
- INIT_GETSERVBYNAME_R;
- INIT_GETSERVBYPORT_R;
}
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
index b8f2f738e7478..468b5494d0092 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
@@ -645,10 +645,6 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
# define SI_MAC_OS_DEPLOYMENT_MIN_13_00 0
#endif
#define SANITIZER_INTERCEPT_FREADLINK (SI_MAC && SI_MAC_OS_DEPLOYMENT_MIN_13_00)
-#define SANITIZER_INTERCEPT_GETSERVENT_R SI_GLIBC
-#define SANITIZER_INTERCEPT_GETSERVBYNAME_R SI_GLIBC
-#define SANITIZER_INTERCEPT_GETSERVBYPORT_R SI_GLIBC
-
// This macro gives a way for downstream users to override the above
// interceptor macros irrespective of the platform they are on. They have
// to do two things:
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
index 1f7e3d21b6a6f..67f00ff6f9e72 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -1509,15 +1509,6 @@ extern unsigned IOCTL_KIOCSOUND;
extern unsigned IOCTL_PIO_SCRNMAP;
#endif
-# if SANITIZER_GLIBC
-struct __sanitizer_servent {
- char *s_name;
- char **s_aliases;
- int s_port;
- char *s_proto;
-};
-# endif
-
extern const int si_SEGV_MAPERR;
extern const int si_SEGV_ACCERR;
} // namespace __sanitizer
More information about the llvm-commits
mailing list