507721 Wire up illumos and Solaris mallinfo
507853 faccessat and faccessat2 should handle AT_FDCWD and absolute paths
507866 fanotify_mark dirfd isn't checked
+507867 perf_event_open group_fd isn't checked
507868 futimesat doesn't handle AT_FDCWD
507869 Various at syscalls don't check dirfd argument
507873 Make fchmodat and fchmodat2 syscall wrappers accept AT_FDCWD
PRE(sys_perf_event_open)
{
+ // int syscall(SYS_perf_event_open, struct perf_event_attr *attr,
+ // pid_t pid, int cpu, int group_fd, unsigned long flags);
struct vki_perf_event_attr *attr;
PRINT("sys_perf_event_open ( %#" FMT_REGWORD "x, %ld, %ld, %ld, %#"
FMT_REGWORD "x )", ARG1, SARG2, SARG3, SARG4, ARG5);
(Addr)&attr->size, sizeof(attr->size) );
PRE_MEM_READ( "perf_event_open(attr)",
(Addr)attr, attr->size );
+ if ((ARG5 & VKI_PERF_FLAG_FD_NO_GROUP) != VKI_PERF_FLAG_FD_NO_GROUP) {
+ if ((Int)SARG4 != -1) {
+ if (!ML_(fd_allowed)(SARG4, "perf_event_open", tid, False)) {
+ SET_STATUS_Failure(VKI_EBADF);
+ }
+ }
+ }
}
POST(sys_perf_event_open)
#define VKI_PERF_EVENT_IOC_ID _VKI_IOR('$', 7, __vki_u64 *)
#define VKI_PERF_EVENT_IOC_SET_BPF _VKI_IOW('$', 8, __vki_u32)
+#define VKI_PERF_FLAG_FD_NO_GROUP (1UL << 0)
+
/*--------------------------------------------------------------------*/
// From linux-2.6.32.4/include/linux/getcpu.h
/*--------------------------------------------------------------------*/