368960 WARNING: unhandled amd64-linux syscall: 163 (acct)
407589 [Linux] Add support for C11 aligned_alloc() and GNU reallocarray()
423963 Error in child thread when CLONE_PIDFD is used
+426148 crash with "impossible happened" when running BPF CO-RE programs
429375 PPC ISA 3.1 support is missing, part 9
431157 PPC_FEATURE2_SCV needs to be masked in AT_HWCAP2
431306 Update demangler to support Rust v0 name mangling
}
}
break;
+ case VKI_BPF_MAP_LOOKUP_AND_DELETE_ELEM:
+ /* Perform a lookup on an eBPF map. Read key, write value (delete key) */
+ PRE_MEM_READ("bpf(attr->key)", (Addr)&attr->key, sizeof(attr->key));
+ PRE_MEM_READ("bpf(attr->value)", (Addr)&attr->value, sizeof(attr->value));
+ PRE_MEM_READ("bpf(attr->map_fd)", (Addr)&attr->map_fd, sizeof(attr->map_fd));
+ if (ML_(safe_to_deref)(attr, ARG3)) {
+ if (!ML_(fd_allowed)(attr->map_fd, "bpf", tid, False)) {
+ SET_STATUS_Failure(VKI_EBADF);
+ break;
+ }
+ /* Get size of key and value for this map. */
+ if (bpf_map_get_sizes(attr->map_fd, &key_size, &value_size)) {
+ PRE_MEM_READ("bpf(attr->key)", attr->key, key_size);
+ PRE_MEM_WRITE("bpf(attr->value)", attr->value, value_size);
+ }
+ }
+ break;
+ case VKI_BPF_MAP_FREEZE:
+ /* Freeze map, read map_fd (write frozen flag, not visible to user space). */
+ PRE_MEM_READ("bpf(attr->map_fd)", (Addr)&attr->map_fd, sizeof(attr->map_fd));
+ break;
default:
VG_(message)(Vg_DebugMsg,
- "FATAL: unhandled eBPF command %lu\n", ARG1);
- VG_(core_panic)("... bye!\n");
+ "WARNING: unhandled eBPF command %lu\n", ARG1);
break;
}
}
POST_MEM_WRITE((Addr)&attr->task_fd_query.probe_offset, sizeof(attr->task_fd_query.probe_offset));
POST_MEM_WRITE((Addr)&attr->task_fd_query.probe_addr, sizeof(attr->task_fd_query.probe_addr));
break;
+ case VKI_BPF_MAP_LOOKUP_AND_DELETE_ELEM:
+ if (bpf_map_get_sizes(attr->map_fd, &key_size, &value_size))
+ POST_MEM_WRITE(attr->value, value_size);
+ break;
+ case VKI_BPF_MAP_FREEZE:
+ /* Freeze map, read map_fd (write frozen flag, not visible to user space). */
+ break;
default:
VG_(message)(Vg_DebugMsg,
- "FATAL: unhandled eBPF command %lu\n", ARG1);
- VG_(core_panic)("... bye!\n");
+ "WARNING: unhandled eBPF command %lu\n", ARG1);
break;
}
}