* [COMMITTED 2.22] hsearch_r: Apply VM size limit in test case
@ 2016-01-01 0:00 Aurelien Jarno
0 siblings, 0 replies; only message in thread
From: Aurelien Jarno @ 2016-01-01 0:00 UTC (permalink / raw)
To: libc-stable; +Cc: Florian Weimer
From: Florian Weimer <fweimer@redhat.com>
(cherry picked from commit f34f146e682d8d529dcf64b3c2781bf3f2f05f6c)
---
ChangeLog | 4 ++++
misc/bug18240.c | 22 ++++++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index ed20b9b..58df7c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-02-12 Florian Weimer <fweimer@redhat.com>
+
+ * misc/bug18240.c (do_test): Set RLIMIT_AS.
+
2016-01-27 Paul Eggert <eggert@cs.ucla.edu>
[BZ #18240]
diff --git a/misc/bug18240.c b/misc/bug18240.c
index 4b26865..773586e 100644
--- a/misc/bug18240.c
+++ b/misc/bug18240.c
@@ -22,6 +22,7 @@
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
+#include <sys/resource.h>
static void
test_size (size_t size)
@@ -58,6 +59,27 @@ test_size (size_t size)
static int
do_test (void)
{
+ /* Limit the size of the process, so that memory allocation will
+ fail without impacting the entire system. */
+ {
+ struct rlimit limit;
+ if (getrlimit (RLIMIT_AS, &limit) != 0)
+ {
+ printf ("getrlimit (RLIMIT_AS) failed: %m\n");
+ return 1;
+ }
+ long target = 100 * 1024 * 1024;
+ if (limit.rlim_cur == RLIM_INFINITY || limit.rlim_cur > target)
+ {
+ limit.rlim_cur = target;
+ if (setrlimit (RLIMIT_AS, &limit) != 0)
+ {
+ printf ("setrlimit (RLIMIT_AS) failed: %m\n");
+ return 1;
+ }
+ }
+ }
+
test_size (500);
test_size (-1);
test_size (-3);
--
2.7.0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-02-16 20:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-01 0:00 [COMMITTED 2.22] hsearch_r: Apply VM size limit in test case Aurelien Jarno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).