Module Name:    src
Committed By:   christos
Date:           Sun May 27 00:36:56 UTC 2018

Modified Files:
        src/tests/lib/libc/sys: t_ptrace_wait.c

Log Message:
alloca, bad; stack protector, good.


To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.55 src/tests/lib/libc/sys/t_ptrace_wait.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/lib/libc/sys/t_ptrace_wait.c
diff -u src/tests/lib/libc/sys/t_ptrace_wait.c:1.54 src/tests/lib/libc/sys/t_ptrace_wait.c:1.55
--- src/tests/lib/libc/sys/t_ptrace_wait.c:1.54	Sat May 26 11:32:31 2018
+++ src/tests/lib/libc/sys/t_ptrace_wait.c	Sat May 26 20:36:56 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: t_ptrace_wait.c,v 1.54 2018/05/26 15:32:31 kamil Exp $	*/
+/*	$NetBSD: t_ptrace_wait.c,v 1.55 2018/05/27 00:36:56 christos Exp $	*/
 
 /*-
  * Copyright (c) 2016 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: t_ptrace_wait.c,v 1.54 2018/05/26 15:32:31 kamil Exp $");
+__RCSID("$NetBSD: t_ptrace_wait.c,v 1.55 2018/05/27 00:36:56 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -1711,12 +1711,11 @@ bytes_transfer_dummy(int a, int b, int c
 }
 
 static void
-bytes_transfer(int operation, int size, enum bytes_transfer_type type)
+bytes_transfer(int operation, size_t size, enum bytes_transfer_type type)
 {
 	const int exitval = 5;
 	const int sigval = SIGSTOP;
 	pid_t child, wpid;
-
 	bool skip = false;
 
 	int lookup_me = 0;
@@ -1735,7 +1734,9 @@ bytes_transfer(int operation, int size, 
 #if defined(TWAIT_HAVE_STATUS)
 	int status;
 #endif
-	AuxInfo *ai = NULL, *aip;
+	AuxInfo ai[64], *aip;
+
+	ATF_REQUIRE(size < sizeof(ai));
 
 	/* Prepare variables for .TEXT transfers */
 	switch (type) {
@@ -1801,7 +1802,6 @@ bytes_transfer(int operation, int size, 
 		}
 		break;
 	case BYTES_TRANSFER_AUXV:
-		ai = alloca(size);
 		io.piod_op = operation;
 		io.piod_offs = 0;
 		io.piod_addr = ai;

Reply via email to