Deleted Added
full compact
tst.badcopyin.d (178477) tst.badcopyin.d (210767)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 6 unchanged lines hidden (view full) ---

15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 6 unchanged lines hidden (view full) ---

15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
23 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
24 * Use is subject to license terms.
25 */
26
27#pragma ident "%Z%%M% %I% %E% SMI"
28
29/*
30 * ASSERTION:
31 * On IA/32, there is a single 32-bit address space that is partitioned
32 * between user-level and kernel-level. copyin()/copyinstr() and
33 * copyout()/copyoutstr() must check that addresses specified as
34 * user-level addresses are actually at user-level. This test attempts
35 * to perform an illegal copyin() from a kernel address. It asserts that
36 * the fault type is DTRACEFLT_BADADDR and that the bad address is set to
37 * the kernel address from which the copyin() was attempted.
38 *
39 * SECTION: Actions and Subroutines/copyin();
40 * Actions and Subroutines/copyin();
41 * User Process Tracing/copyin() and copyinstr()
42 */
43
44BEGIN
45{
27/*
28 * ASSERTION:
29 * On IA/32, there is a single 32-bit address space that is partitioned
30 * between user-level and kernel-level. copyin()/copyinstr() and
31 * copyout()/copyoutstr() must check that addresses specified as
32 * user-level addresses are actually at user-level. This test attempts
33 * to perform an illegal copyin() from a kernel address. It asserts that
34 * the fault type is DTRACEFLT_BADADDR and that the bad address is set to
35 * the kernel address from which the copyin() was attempted.
36 *
37 * SECTION: Actions and Subroutines/copyin();
38 * Actions and Subroutines/copyin();
39 * User Process Tracing/copyin() and copyinstr()
40 */
41
42BEGIN
43{
46 lbolt = copyin((uintptr_t)&`lbolt, sizeof (int));
44 dtrace_zero = copyin((uintptr_t)&`dtrace_zero, sizeof (int));
47 exit(1);
48}
49
50ERROR
51{
45 exit(1);
46}
47
48ERROR
49{
52 exit(arg4 == DTRACEFLT_BADADDR && arg5 == (uint64_t)&`lbolt ? 0 : 1);
50 exit(arg4 == DTRACEFLT_BADADDR &&
51 arg5 == (uint64_t)&`dtrace_zero ? 0 : 1);
53}
52}