diff options
| author | Paul Buetow <paul@buetow.org> | 2026-06-01 15:53:26 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-06-01 15:53:26 +0300 |
| commit | 5057bd968b33fcb4bcf337730e961e53fcb54645 (patch) | |
| tree | 3bc47c6416ff5938bedfa46e2bab82e06803b7de /internal/c | |
| parent | 04c0c9abbf079922ce312fe786bdc9986c31b665 (diff) | |
fix(classify): msgsnd returns status, not bytes — make ret UNCLASSIFIED
msgsnd(2) returns 0 on success or -1 on error; the payload size msgsz is
an INPUT argument, never the return value. It was wrongly listed in
retClassifications as WriteClassified, which made the stats engine treat
its 0 return as "bytes written". Remove it so its return stays
UNCLASSIFIED, consistent with its SysV IPC siblings (msgrcv legitimately
stays ReadClassified because it returns a received byte count).
Regenerated tracepoints/docs accordingly. Verified: mage generate
idempotent, mage build OK, internal/generate tests pass, and the
TestSysVMsgBasic integration test (added in task 7i0) still passes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'internal/c')
| -rw-r--r-- | internal/c/generated_tracepoints.c | 4 | ||||
| -rw-r--r-- | internal/c/generated_tracepoints_result.txt | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/internal/c/generated_tracepoints.c b/internal/c/generated_tracepoints.c index 64d40db..8e3f996 100644 --- a/internal/c/generated_tracepoints.c +++ b/internal/c/generated_tracepoints.c @@ -3296,7 +3296,7 @@ int handle_sys_enter_msgsnd(struct syscall_trace_enter *ctx) { return 0; } -/// sys_exit_msgsnd is a struct ret_event (WRITE_CLASSIFIED) (kind=ret) +/// sys_exit_msgsnd is a struct ret_event (UNCLASSIFIED) (kind=ret) SEC("tracepoint/syscalls/sys_exit_msgsnd") int handle_sys_exit_msgsnd(struct syscall_trace_exit *ctx) { __u32 pid, tid; @@ -3316,7 +3316,7 @@ int handle_sys_exit_msgsnd(struct syscall_trace_exit *ctx) { ev->tid = tid; ev->time = bpf_ktime_get_boot_ns(); ev->ret = ctx->ret; - ev->ret_type = WRITE_CLASSIFIED; + ev->ret_type = UNCLASSIFIED; bpf_ringbuf_submit(ev, 0); return 0; diff --git a/internal/c/generated_tracepoints_result.txt b/internal/c/generated_tracepoints_result.txt index e6cb4d3..0a88f30 100644 --- a/internal/c/generated_tracepoints_result.txt +++ b/internal/c/generated_tracepoints_result.txt @@ -551,7 +551,7 @@ sys_exit_mseal is a struct ret_event (UNCLASSIFIED) (kind=ret) sys_exit_msgctl is a struct ret_event (UNCLASSIFIED) (kind=ret) sys_exit_msgget is a struct ret_event (UNCLASSIFIED) (kind=ret) sys_exit_msgrcv is a struct ret_event (READ_CLASSIFIED) (kind=ret) -sys_exit_msgsnd is a struct ret_event (WRITE_CLASSIFIED) (kind=ret) +sys_exit_msgsnd is a struct ret_event (UNCLASSIFIED) (kind=ret) sys_exit_msync is a struct ret_event (UNCLASSIFIED) (kind=ret) sys_exit_munlock is a struct ret_event (UNCLASSIFIED) (kind=ret) sys_exit_munlockall is a struct ret_event (UNCLASSIFIED) (kind=ret) |
