This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] test-skeleton.c: Do not set RLIMIT_DATA [BZ #19648]
- From: Florian Weimer <fweimer at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Sat, 20 Feb 2016 15:13:01 +0100
- Subject: [PATCH] test-skeleton.c: Do not set RLIMIT_DATA [BZ #19648]
- Authentication-results: sourceware.org; auth=none
With older kernels, it is mostly ineffective because it causes malloc
to switch from sbrk to mmap (potentially invalidating malloc testing
compared to what real appliations do). With newer kernels which
have switched to enforcing RLIMIT_DATA for mmap as well, some test
cases will fail in an unintended fashion because the limit which was
set previously does not include room for all mmap mappings.
Florian
2016-02-20 Florian Weimer <fweimer@redhat.com>
[BZ #19648]
* test-skeleton.c (main): Do not set RLIMIT_DATA.
diff --git a/test-skeleton.c b/test-skeleton.c
index a2d90a2..29bdc9c 100644
--- a/test-skeleton.c
+++ b/test-skeleton.c
@@ -429,23 +429,6 @@ main (int argc, char *argv[])
setrlimit (RLIMIT_CORE, &core_limit);
#endif
-#ifdef RLIMIT_DATA
- /* Try to avoid eating all memory if a test leaks. */
- struct rlimit data_limit;
- if (getrlimit (RLIMIT_DATA, &data_limit) == 0)
- {
- if (TEST_DATA_LIMIT == RLIM_INFINITY)
- data_limit.rlim_cur = data_limit.rlim_max;
- else if (data_limit.rlim_cur > (rlim_t) TEST_DATA_LIMIT)
- data_limit.rlim_cur = MIN ((rlim_t) TEST_DATA_LIMIT,
- data_limit.rlim_max);
- if (setrlimit (RLIMIT_DATA, &data_limit) < 0)
- printf ("setrlimit: RLIMIT_DATA: %m\n");
- }
- else
- printf ("getrlimit: RLIMIT_DATA: %m\n");
-#endif
-
/* We put the test process in its own pgrp so that if it bogusly
generates any job control signals, they won't hit the whole build. */
if (setpgid (0, 0) != 0)