1*a65365b8Srin# $NetBSD: t_asan_global_buffer_overflow.sh,v 1.4 2023/08/07 00:54:54 rin Exp $ 28e4f836cSkamil# 3ff295eccSmgorny# Copyright (c) 2018, 2019 The NetBSD Foundation, Inc. 48e4f836cSkamil# All rights reserved. 58e4f836cSkamil# 68e4f836cSkamil# This code is derived from software contributed to The NetBSD Foundation 78e4f836cSkamil# by Siddharth Muralee. 88e4f836cSkamil# 98e4f836cSkamil# Redistribution and use in source and binary forms, with or without 108e4f836cSkamil# modification, are permitted provided that the following conditions 118e4f836cSkamil# are met: 128e4f836cSkamil# 1. Redistributions of source code must retain the above copyright 138e4f836cSkamil# notice, this list of conditions and the following disclaimer. 148e4f836cSkamil# 2. Redistributions in binary form must reproduce the above copyright 158e4f836cSkamil# notice, this list of conditions and the following disclaimer in the 168e4f836cSkamil# documentation and/or other materials provided with the distribution. 178e4f836cSkamil# 188e4f836cSkamil# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 198e4f836cSkamil# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 208e4f836cSkamil# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 218e4f836cSkamil# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 228e4f836cSkamil# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 238e4f836cSkamil# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 248e4f836cSkamil# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 258e4f836cSkamil# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 268e4f836cSkamil# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 278e4f836cSkamil# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 288e4f836cSkamil# POSSIBILITY OF SUCH DAMAGE. 298e4f836cSkamil# 308e4f836cSkamil 31ff295eccSmgornyASAN_CODE=' 328e4f836cSkamil#include <stdio.h> 338e4f836cSkamil#include <stdlib.h> 34ff295eccSmgornyvoid foo(int); 35ff295eccSmgorny#ifndef PIC_MAIN 36*a65365b8Srinextern int arr[]; 37ff295eccSmgornyvoid foo(int index) { arr[index] = 0; } 38ff295eccSmgorny#endif 39ff295eccSmgorny#ifndef PIC_FOO 40*a65365b8Srinint arr[5] = {-1}; 418e4f836cSkamilint main(int argc, char **argv) {foo(argc + 5); printf("CHECK\n"); exit(0);} 42ff295eccSmgorny#endif 43ff295eccSmgorny' 448e4f836cSkamil 45ff295eccSmgornyasan_test_case global_buffer_overflow "Global Buffer Overflow example" \ 46ff295eccSmgorny global-buffer-overflow 478e4f836cSkamil 488e4f836cSkamilatf_init_test_cases() 498e4f836cSkamil{ 50ff295eccSmgorny asan_add_test_cases global_buffer_overflow 518e4f836cSkamil} 52