1*a65365b8Srin# $NetBSD: t_asan_global_buffer_overflow.sh,v 1.4 2023/08/07 00:54:54 rin Exp $ 29f0bdbd9Skamil# 3bf6dc715Smgorny# Copyright (c) 2018, 2019 The NetBSD Foundation, Inc. 49f0bdbd9Skamil# All rights reserved. 59f0bdbd9Skamil# 69f0bdbd9Skamil# This code is derived from software contributed to The NetBSD Foundation 79f0bdbd9Skamil# by Siddharth Muralee. 89f0bdbd9Skamil# 99f0bdbd9Skamil# Redistribution and use in source and binary forms, with or without 109f0bdbd9Skamil# modification, are permitted provided that the following conditions 119f0bdbd9Skamil# are met: 129f0bdbd9Skamil# 1. Redistributions of source code must retain the above copyright 139f0bdbd9Skamil# notice, this list of conditions and the following disclaimer. 149f0bdbd9Skamil# 2. Redistributions in binary form must reproduce the above copyright 159f0bdbd9Skamil# notice, this list of conditions and the following disclaimer in the 169f0bdbd9Skamil# documentation and/or other materials provided with the distribution. 179f0bdbd9Skamil# 189f0bdbd9Skamil# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 199f0bdbd9Skamil# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 209f0bdbd9Skamil# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 219f0bdbd9Skamil# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 229f0bdbd9Skamil# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 239f0bdbd9Skamil# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 249f0bdbd9Skamil# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 259f0bdbd9Skamil# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 269f0bdbd9Skamil# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 279f0bdbd9Skamil# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 289f0bdbd9Skamil# POSSIBILITY OF SUCH DAMAGE. 299f0bdbd9Skamil# 309f0bdbd9Skamil 31bf6dc715SmgornyASAN_CODE=' 329f0bdbd9Skamil#include <stdio.h> 339f0bdbd9Skamil#include <stdlib.h> 349f0bdbd9Skamilvoid foo(int); 35bf6dc715Smgorny#ifndef PIC_MAIN 36*a65365b8Srinextern int arr[]; 379f0bdbd9Skamilvoid foo(int index) { arr[index] = 0; } 38bf6dc715Smgorny#endif 39bf6dc715Smgorny#ifndef PIC_FOO 40*a65365b8Srinint arr[5] = {-1}; 41bf6dc715Smgornyint main(int argc, char **argv) {foo(argc + 5); printf("CHECK\n"); exit(0);} 42bf6dc715Smgorny#endif 43bf6dc715Smgorny' 449f0bdbd9Skamil 45bf6dc715Smgornyasan_test_case global_buffer_overflow "Global Buffer Overflow example" \ 46bf6dc715Smgorny global-buffer-overflow 479f0bdbd9Skamil 489f0bdbd9Skamilatf_init_test_cases() 499f0bdbd9Skamil{ 50bf6dc715Smgorny asan_add_test_cases global_buffer_overflow 519f0bdbd9Skamil} 52