[LTP] [PATCH] testcases: cve-2014-0196: Set attempts according to nb of cpus

Mylène Josserand mylene.josserand@bootlin.com
Fri Jun 15 10:08:10 CEST 2018


This test tries to cause a buffer overflow by doing 0x7000
attempts. In a slow system platform, it leads to a failure
because of the timeout even when it is configured with
LTP_TIMEOUT_MUL=10.

This commit adds a way to configure the number of attempts
according to the number of CPUs.
In case of 1 CPU and a slow platform, using 0x2000 attempts
with a LTP_TIMEOUT_MUL=2 make the test pass.

Signed-off-by: Mylène Josserand <mylene.josserand@bootlin.com>
---

Hello,

This is a way to fix the issue I got but let me know
what you think of it. There is maybe a better way to
handle that.

Thank you,
Mylène

 testcases/cve/cve-2014-0196.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/testcases/cve/cve-2014-0196.c b/testcases/cve/cve-2014-0196.c
index d18108897..898da1073 100644
--- a/testcases/cve/cve-2014-0196.c
+++ b/testcases/cve/cve-2014-0196.c
@@ -48,7 +48,7 @@
 
 #define ONEOFF_ALLOCS 200
 #define RUN_ALLOCS    30
-#define ATTEMPTS      0x7000
+#define ATTEMPTS      0x2000
 #define BUFLEN        512
 
 static volatile int master_fd, slave_fd;
@@ -98,11 +98,14 @@ static void *overwrite_thread_fn(void *p LTP_ATTRIBUTE_UNUSED)
 static void run(void)
 {
 	struct termios t;
-	int i, j;
+	int i, j, total_cpus;
 
-	tst_res(TINFO, "Attempting to overflow into a tty_struct...");
+	total_cpus = tst_ncpus();
 
-	for (i = 0; i < ATTEMPTS; i++) {
+	tst_res(TINFO, "Attempting to overflow into a tty_struct during %x attempts...",
+		ATTEMPTS * total_cpus);
+
+	for (i = 0; i < ATTEMPTS * total_cpus; i++) {
 		create_pty((int *)&master_fd, (int *)&slave_fd);
 
 		for (j = 0; j < RUN_ALLOCS; j++)
-- 
2.11.0



More information about the ltp mailing list