You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.6 KiB
41 lines
1.6 KiB
commit 900056024b75eae8b550d7fee1dec9e71f28344e |
|
Author: Florian Weimer <fweimer@redhat.com> |
|
Date: Mon Mar 7 13:48:47 2016 +0100 |
|
|
|
test-skeleton.c: Do not set RLIMIT_DATA [BZ #19648] |
|
|
|
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. |
|
|
|
Index: b/test-skeleton.c |
|
=================================================================== |
|
--- a/test-skeleton.c |
|
+++ b/test-skeleton.c |
|
@@ -356,23 +356,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. */ |
|
setpgid (0, 0);
|
|
|