Skip to content

Commit 8372e9b

Browse files
feat: Enhance test_3 to safely read from kernel buffer and return length
1 parent 86c2f72 commit 8372e9b

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/features/struct_ops/struct_ops.bpf.c

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,25 @@ int BPF_PROG(bpf_testmod_test_2, int a, int b)
2525
SEC("struct_ops/test_3")
2626
int BPF_PROG(bpf_testmod_test_3, const char *buf, int len)
2727
{
28+
char read_buf[64] = {0};
29+
int read_len = len < sizeof(read_buf) ? len : sizeof(read_buf) - 1;
30+
2831
bpf_printk("BPF test_3 called with buffer length %d\n", len);
29-
/* Note: Accessing buf pointer requires proper context setup in kernel module */
30-
return 0;
32+
33+
/* Safely read from kernel buffer using bpf_probe_read_kernel */
34+
if (buf && read_len > 0) {
35+
long ret = bpf_probe_read_kernel(read_buf, read_len, buf);
36+
if (ret == 0) {
37+
/* Successfully read buffer - print first few characters */
38+
bpf_printk("Buffer content: '%c%c%c%c'\n",
39+
read_buf[0], read_buf[1], read_buf[2], read_buf[3]);
40+
bpf_printk("Full buffer: %s\n", read_buf);
41+
} else {
42+
bpf_printk("Failed to read buffer, ret=%ld\n", ret);
43+
}
44+
}
45+
46+
return len;
3147
}
3248

3349
/* Define the struct_ops map */

0 commit comments

Comments
 (0)