aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2021-02-23 11:02:33 -0500
committerDavid Goulet <dgoulet@torproject.org>2021-02-23 12:16:58 -0500
commitad4f87ed3f2126814e42565e2d815e37f99f7c1f (patch)
treea6004718e3da168a755a2afd33a45c1caad10594
parent49c61c1bb85fa557a6a47f41cfab435a82a6d82f (diff)
downloadtor-ad4f87ed3f2126814e42565e2d815e37f99f7c1f.tar.gz
tor-ad4f87ed3f2126814e42565e2d815e37f99f7c1f.zip
Remove mallinfo() from codebase
Now deprecated in libc >= 2.33 Closes #40309 Signed-off-by: David Goulet <dgoulet@torproject.org>
-rw-r--r--changes/ticket403093
-rw-r--r--configure.ac1
-rw-r--r--src/app/main/main.c1
-rw-r--r--src/lib/meminfo/meminfo.c23
-rw-r--r--src/lib/meminfo/meminfo.h1
-rw-r--r--src/test/test_util.c52
6 files changed, 3 insertions, 78 deletions
diff --git a/changes/ticket40309 b/changes/ticket40309
new file mode 100644
index 0000000000..087ac36a4f
--- /dev/null
+++ b/changes/ticket40309
@@ -0,0 +1,3 @@
+ o New system requirements (mallinfo() deprecated):
+ - Remove mallinfo() usage entirely. Libc 2.33+ now deprecates it. Closes
+ ticket 40309.
diff --git a/configure.ac b/configure.ac
index 03c80d73b5..db5bfee202 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2038,7 +2038,6 @@ AS_CASE([$malloc],
[system], [
# handle this later, including the jemalloc fallback
- AC_CHECK_FUNCS(mallinfo)
],
[AC_MSG_ERROR([--with-malloc=`$with_malloc' not supported, see --help])
diff --git a/src/app/main/main.c b/src/app/main/main.c
index d7d36bff4e..fd166638db 100644
--- a/src/app/main/main.c
+++ b/src/app/main/main.c
@@ -319,7 +319,6 @@ dumpmemusage(int severity)
dump_routerlist_mem_usage(severity);
dump_cell_pool_usage(severity);
dump_dns_mem_usage(severity);
- tor_log_mallinfo(severity);
}
/** Write all statistics to the log, with log level <b>severity</b>. Called
diff --git a/src/lib/meminfo/meminfo.c b/src/lib/meminfo/meminfo.c
index 0c5e0ed665..b7d991e410 100644
--- a/src/lib/meminfo/meminfo.c
+++ b/src/lib/meminfo/meminfo.c
@@ -37,29 +37,6 @@
#include <sys/sysctl.h>
#endif
-DISABLE_GCC_WARNING("-Waggregate-return")
-/** Call the platform malloc info function, and dump the results to the log at
- * level <b>severity</b>. If no such function exists, do nothing. */
-void
-tor_log_mallinfo(int severity)
-{
-#ifdef HAVE_MALLINFO
- struct mallinfo mi;
- memset(&mi, 0, sizeof(mi));
- mi = mallinfo();
- tor_log(severity, LD_MM,
- "mallinfo() said: arena=%d, ordblks=%d, smblks=%d, hblks=%d, "
- "hblkhd=%d, usmblks=%d, fsmblks=%d, uordblks=%d, fordblks=%d, "
- "keepcost=%d",
- mi.arena, mi.ordblks, mi.smblks, mi.hblks,
- mi.hblkhd, mi.usmblks, mi.fsmblks, mi.uordblks, mi.fordblks,
- mi.keepcost);
-#else /* !defined(HAVE_MALLINFO) */
- (void)severity;
-#endif /* defined(HAVE_MALLINFO) */
-}
-ENABLE_GCC_WARNING("-Waggregate-return")
-
#if defined(HW_PHYSMEM64)
/* OpenBSD and NetBSD define this */
#define INT64_HW_MEM HW_PHYSMEM64
diff --git a/src/lib/meminfo/meminfo.h b/src/lib/meminfo/meminfo.h
index a5ebfd5a6a..36a85c133d 100644
--- a/src/lib/meminfo/meminfo.h
+++ b/src/lib/meminfo/meminfo.h
@@ -15,7 +15,6 @@
#include "lib/testsupport/testsupport.h"
#include <stddef.h>
-void tor_log_mallinfo(int severity);
MOCK_DECL(int, get_total_system_memory, (size_t *mem_out));
#endif /* !defined(TOR_MEMINFO_H) */
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 2aee07a26a..00626c7ec0 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -6256,57 +6256,6 @@ test_util_get_unquoted_path(void *arg)
}
static void
-test_util_log_mallinfo(void *arg)
-{
- (void)arg;
- char *log1 = NULL, *log2 = NULL, *mem = NULL;
-#ifdef HAVE_MALLINFO
- setup_capture_of_logs(LOG_INFO);
- tor_log_mallinfo(LOG_INFO);
- expect_single_log_msg_containing("mallinfo() said: ");
- mock_saved_log_entry_t *lg = smartlist_get(mock_saved_logs(), 0);
- log1 = tor_strdup(lg->generated_msg);
-
- mock_clean_saved_logs();
- mem = tor_malloc(8192);
- tor_log_mallinfo(LOG_INFO);
- expect_single_log_msg_containing("mallinfo() said: ");
- lg = smartlist_get(mock_saved_logs(), 0);
- log2 = tor_strdup(lg->generated_msg);
-
- /* Make sure that the amount of used memory increased. */
- const char *used1 = strstr(log1, "uordblks=");
- const char *used2 = strstr(log2, "uordblks=");
- tt_assert(used1);
- tt_assert(used2);
- used1 += strlen("uordblks=");
- used2 += strlen("uordblks=");
-
- int ok1, ok2;
- char *next1 = NULL, *next2 = NULL;
- uint64_t mem1 = tor_parse_uint64(used1, 10, 0, UINT64_MAX, &ok1, &next1);
- uint64_t mem2 = tor_parse_uint64(used2, 10, 0, UINT64_MAX, &ok2, &next2);
- tt_assert(ok1);
- tt_assert(ok2);
- tt_assert(next1);
- tt_assert(next2);
- if (mem2 == 0) {
- /* This is a fake mallinfo that doesn't actually fill in its outputs. */
- tt_u64_op(mem1, OP_EQ, 0);
- } else {
- tt_u64_op(mem1, OP_LT, mem2);
- }
-#else /* !defined(HAVE_MALLINFO) */
- tt_skip();
-#endif /* defined(HAVE_MALLINFO) */
- done:
- teardown_capture_of_logs();
- tor_free(log1);
- tor_free(log2);
- tor_free(mem);
-}
-
-static void
test_util_map_anon(void *arg)
{
(void)arg;
@@ -6573,7 +6522,6 @@ struct testcase_t util_tests[] = {
UTIL_TEST(monotonic_time_add_msec, 0),
UTIL_TEST(htonll, 0),
UTIL_TEST(get_unquoted_path, 0),
- UTIL_TEST(log_mallinfo, 0),
UTIL_TEST(map_anon, 0),
UTIL_TEST(map_anon_nofork, 0),
END_OF_TESTCASES