mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
Extend FreeBSD procctl
4 new types added in FreeBSD 13.1
This commit is contained in:
parent
bbc3bcab0a
commit
6c91d2d4ee
@ -958,21 +958,23 @@ PRE(sys_procctl)
|
||||
SARG1, SARG2, SARG3, ARG4);
|
||||
PRE_REG_READ4(int, "procctl", vki_idtype_t, idtype, vki_id_t, id, int, cmd, void *, arg);
|
||||
switch (ARG3) {
|
||||
case PROC_ASLR_CTL:
|
||||
case PROC_SPROTECT:
|
||||
case PROC_TRACE_CTL:
|
||||
case PROC_TRAPCAP_CTL:
|
||||
case PROC_PDEATHSIG_CTL:
|
||||
case PROC_STACKGAP_CTL:
|
||||
case VKI_PROC_ASLR_CTL:
|
||||
case VKI_PROC_SPROTECT:
|
||||
case VKI_PROC_TRACE_CTL:
|
||||
case VKI_PROC_TRAPCAP_CTL:
|
||||
case VKI_PROC_PDEATHSIG_CTL:
|
||||
case VKI_PROC_STACKGAP_CTL:
|
||||
case VKI_PROC_NO_NEW_PRIVS_CTL:
|
||||
case VKI_PROC_WXMAP_CTL:
|
||||
PRE_MEM_READ("procctl(arg)", ARG4, sizeof(int));
|
||||
break;
|
||||
case PROC_REAP_STATUS:
|
||||
case VKI_PROC_REAP_STATUS:
|
||||
PRE_MEM_READ("procctl(arg)", ARG4, sizeof(struct vki_procctl_reaper_status));
|
||||
break;
|
||||
case PROC_REAP_GETPIDS:
|
||||
case VKI_PROC_REAP_GETPIDS:
|
||||
PRE_MEM_READ("procctl(arg)", ARG4, sizeof(struct vki_procctl_reaper_pids));
|
||||
break;
|
||||
case PROC_REAP_KILL:
|
||||
case VKI_PROC_REAP_KILL:
|
||||
/* The first three fields are reads
|
||||
* int rk_sig;
|
||||
* u_int rk_flags;
|
||||
@ -987,14 +989,16 @@ PRE(sys_procctl)
|
||||
PRE_MEM_READ("procctl(arg)", ARG4, sizeof(int) + sizeof(u_int) + sizeof(vki_pid_t));
|
||||
PRE_MEM_WRITE("procctl(arg)", ARG4+offsetof(struct vki_procctl_reaper_kill, rk_killed), sizeof(u_int) + sizeof(vki_pid_t));
|
||||
break;
|
||||
case PROC_ASLR_STATUS:
|
||||
case PROC_PDEATHSIG_STATUS:
|
||||
case PROC_STACKGAP_STATUS:
|
||||
case PROC_TRAPCAP_STATUS:
|
||||
case PROC_TRACE_STATUS:
|
||||
case VKI_PROC_ASLR_STATUS:
|
||||
case VKI_PROC_PDEATHSIG_STATUS:
|
||||
case VKI_PROC_STACKGAP_STATUS:
|
||||
case VKI_PROC_TRAPCAP_STATUS:
|
||||
case VKI_PROC_TRACE_STATUS:
|
||||
case VKI_PROC_NO_NEW_PRIVS_STATUS:
|
||||
case VKI_PROC_WXMAP_STATUS:
|
||||
PRE_MEM_WRITE("procctl(arg)", ARG4, sizeof(int));
|
||||
case PROC_REAP_ACQUIRE:
|
||||
case PROC_REAP_RELEASE:
|
||||
case VKI_PROC_REAP_ACQUIRE:
|
||||
case VKI_PROC_REAP_RELEASE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -1003,14 +1007,16 @@ PRE(sys_procctl)
|
||||
POST(sys_procctl)
|
||||
{
|
||||
switch (ARG3) {
|
||||
case PROC_REAP_KILL:
|
||||
case VKI_PROC_REAP_KILL:
|
||||
POST_MEM_WRITE(ARG4+offsetof(struct vki_procctl_reaper_kill, rk_killed), sizeof(u_int) + sizeof(vki_pid_t));
|
||||
break;
|
||||
case PROC_ASLR_STATUS:
|
||||
case PROC_PDEATHSIG_STATUS:
|
||||
case PROC_STACKGAP_STATUS:
|
||||
case PROC_TRAPCAP_STATUS:
|
||||
case PROC_TRACE_STATUS:
|
||||
case VKI_PROC_ASLR_STATUS:
|
||||
case VKI_PROC_PDEATHSIG_STATUS:
|
||||
case VKI_PROC_STACKGAP_STATUS:
|
||||
case VKI_PROC_TRAPCAP_STATUS:
|
||||
case VKI_PROC_TRACE_STATUS:
|
||||
case VKI_PROC_NO_NEW_PRIVS_STATUS:
|
||||
case VKI_PROC_WXMAP_STATUS:
|
||||
POST_MEM_WRITE(ARG4, sizeof(int));
|
||||
default:
|
||||
break;
|
||||
|
||||
@ -1357,21 +1357,23 @@ PRE(sys_procctl)
|
||||
vki_uint32_t, MERGE64_SECOND(id),
|
||||
int, cmd, void *, arg);
|
||||
switch (ARG4) {
|
||||
case PROC_ASLR_CTL:
|
||||
case PROC_SPROTECT:
|
||||
case PROC_TRACE_CTL:
|
||||
case PROC_TRAPCAP_CTL:
|
||||
case PROC_PDEATHSIG_CTL:
|
||||
case PROC_STACKGAP_CTL:
|
||||
case VKI_PROC_ASLR_CTL:
|
||||
case VKI_PROC_SPROTECT:
|
||||
case VKI_PROC_TRACE_CTL:
|
||||
case VKI_PROC_TRAPCAP_CTL:
|
||||
case VKI_PROC_PDEATHSIG_CTL:
|
||||
case VKI_PROC_STACKGAP_CTL:
|
||||
case VKI_PROC_NO_NEW_PRIVS_CTL:
|
||||
case VKI_PROC_WXMAP_CTL:
|
||||
PRE_MEM_READ("procctl(arg)", ARG5, sizeof(int));
|
||||
break;
|
||||
case PROC_REAP_STATUS:
|
||||
case VKI_PROC_REAP_STATUS:
|
||||
PRE_MEM_READ("procctl(arg)", ARG5, sizeof(struct vki_procctl_reaper_status));
|
||||
break;
|
||||
case PROC_REAP_GETPIDS:
|
||||
case VKI_PROC_REAP_GETPIDS:
|
||||
PRE_MEM_READ("procctl(arg)", ARG5, sizeof(struct vki_procctl_reaper_pids));
|
||||
break;
|
||||
case PROC_REAP_KILL:
|
||||
case VKI_PROC_REAP_KILL:
|
||||
/* The first three fields are reads
|
||||
* int rk_sig;
|
||||
* u_int rk_flags;
|
||||
@ -1386,14 +1388,14 @@ PRE(sys_procctl)
|
||||
PRE_MEM_READ("procctl(arg)", ARG5, sizeof(int) + sizeof(u_int) + sizeof(vki_pid_t));
|
||||
PRE_MEM_WRITE("procctl(arg)", ARG5+offsetof(struct vki_procctl_reaper_kill, rk_killed), sizeof(u_int) + sizeof(vki_pid_t));
|
||||
break;
|
||||
case PROC_ASLR_STATUS:
|
||||
case PROC_PDEATHSIG_STATUS:
|
||||
case PROC_STACKGAP_STATUS:
|
||||
case PROC_TRAPCAP_STATUS:
|
||||
case PROC_TRACE_STATUS:
|
||||
case VKI_PROC_ASLR_STATUS:
|
||||
case VKI_PROC_PDEATHSIG_STATUS:
|
||||
case VKI_PROC_STACKGAP_STATUS:
|
||||
case VKI_PROC_TRAPCAP_STATUS:
|
||||
case VKI_PROC_TRACE_STATUS:
|
||||
PRE_MEM_WRITE("procctl(arg)", ARG5, sizeof(int));
|
||||
case PROC_REAP_ACQUIRE:
|
||||
case PROC_REAP_RELEASE:
|
||||
case VKI_PROC_REAP_ACQUIRE:
|
||||
case VKI_PROC_REAP_RELEASE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -1402,14 +1404,16 @@ PRE(sys_procctl)
|
||||
POST(sys_procctl)
|
||||
{
|
||||
switch (ARG4) {
|
||||
case PROC_REAP_KILL:
|
||||
case VKI_PROC_REAP_KILL:
|
||||
POST_MEM_WRITE(ARG5+offsetof(struct vki_procctl_reaper_kill, rk_killed), sizeof(u_int) + sizeof(vki_pid_t));
|
||||
break;
|
||||
case PROC_ASLR_STATUS:
|
||||
case PROC_PDEATHSIG_STATUS:
|
||||
case PROC_STACKGAP_STATUS:
|
||||
case PROC_TRAPCAP_STATUS:
|
||||
case PROC_TRACE_STATUS:
|
||||
case VKI_PROC_ASLR_STATUS:
|
||||
case VKI_PROC_PDEATHSIG_STATUS:
|
||||
case VKI_PROC_STACKGAP_STATUS:
|
||||
case VKI_PROC_TRAPCAP_STATUS:
|
||||
case VKI_PROC_TRACE_STATUS:
|
||||
case VKI_PROC_NO_NEW_PRIVS_STATUS:
|
||||
case VKI_PROC_WXMAP_STATUS:
|
||||
POST_MEM_WRITE(ARG5, sizeof(int));
|
||||
default:
|
||||
break;
|
||||
|
||||
@ -2285,23 +2285,26 @@ typedef struct vki_domainset vki_domainset_t;
|
||||
// From sys/procctl.h
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
#define PROC_SPROTECT 1
|
||||
#define PROC_REAP_ACQUIRE 2
|
||||
#define PROC_REAP_RELEASE 3
|
||||
#define PROC_REAP_STATUS 4
|
||||
#define PROC_REAP_GETPIDS 5
|
||||
#define PROC_REAP_KILL 6
|
||||
#define PROC_TRACE_CTL 7
|
||||
#define PROC_TRACE_STATUS 8
|
||||
#define PROC_TRAPCAP_CTL 9
|
||||
#define PROC_TRAPCAP_STATUS 10
|
||||
#define PROC_PDEATHSIG_CTL 11
|
||||
#define PROC_PDEATHSIG_STATUS 12
|
||||
#define PROC_ASLR_CTL 13
|
||||
#define PROC_ASLR_STATUS 14
|
||||
#define PROC_STACKGAP_CTL 17
|
||||
#define PROC_STACKGAP_STATUS 18
|
||||
|
||||
#define VKI_PROC_SPROTECT 1
|
||||
#define VKI_PROC_REAP_ACQUIRE 2
|
||||
#define VKI_PROC_REAP_RELEASE 3
|
||||
#define VKI_PROC_REAP_STATUS 4
|
||||
#define VKI_PROC_REAP_GETPIDS 5
|
||||
#define VKI_PROC_REAP_KILL 6
|
||||
#define VKI_PROC_TRACE_CTL 7
|
||||
#define VKI_PROC_TRACE_STATUS 8
|
||||
#define VKI_PROC_TRAPCAP_CTL 9
|
||||
#define VKI_PROC_TRAPCAP_STATUS 10
|
||||
#define VKI_PROC_PDEATHSIG_CTL 11
|
||||
#define VKI_PROC_PDEATHSIG_STATUS 12
|
||||
#define VKI_PROC_ASLR_CTL 13
|
||||
#define VKI_PROC_ASLR_STATUS 14
|
||||
#define VKI_PROC_STACKGAP_CTL 17
|
||||
#define VKI_PROC_STACKGAP_STATUS 18
|
||||
#define VKI_PROC_NO_NEW_PRIVS_CTL 19
|
||||
#define VKI_PROC_NO_NEW_PRIVS_STATUS 20
|
||||
#define VKI_PROC_WXMAP_CTL 21
|
||||
#define VKI_PROC_WXMAP_STATUS 22
|
||||
|
||||
struct vki_procctl_reaper_status {
|
||||
u_int rs_flags;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user