1251843Sbapt// SPDX-License-Identifier: GPL-2.0 2255852Sdteske/* Copyright (c) 2020 Facebook */ 3251843Sbapt#include "bpf_iter.h" 4217309Snwhitehorn#include <bpf/bpf_helpers.h> 5217309Snwhitehorn#include <bpf/bpf_tracing.h> 6217309Snwhitehorn 7217309Snwhitehornchar _license[] SEC("license") = "GPL"; 8217309Snwhitehorn 9217309Snwhitehornstruct key_t { 10217309Snwhitehorn int a; 11217309Snwhitehorn int b; 12217309Snwhitehorn int c; 13217309Snwhitehorn}; 14217309Snwhitehorn 15217309Snwhitehornstruct { 16217309Snwhitehorn __uint(type, BPF_MAP_TYPE_HASH); 17217309Snwhitehorn __uint(max_entries, 3); 18217309Snwhitehorn __type(key, struct key_t); 19220749Snwhitehorn __type(value, __u64); 20220749Snwhitehorn} hashmap1 SEC(".maps"); 21220749Snwhitehorn 22220749Snwhitehorn__u32 key_sum = 0; 23220749Snwhitehorn 24220749SnwhitehornSEC("iter/bpf_map_elem") 25224014Snwhitehornint dump_bpf_hash_map(struct bpf_iter__bpf_map_elem *ctx) 26224014Snwhitehorn{ 27224014Snwhitehorn void *key = ctx->key; 28224014Snwhitehorn 29224014Snwhitehorn if (key == (void *)0) 30224014Snwhitehorn return 0; 31224014Snwhitehorn 32224014Snwhitehorn /* out of bound access w.r.t. hashmap1 */ 33224014Snwhitehorn key_sum += *(__u32 *)(key + sizeof(struct key_t)); 34224014Snwhitehorn return 0; 35224014Snwhitehorn} 36224014Snwhitehorn