рдЕрдВрдХ #249 рджреЗрдЦреЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА :
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдмреАрдкреАрдПрдл рдореЗрдВ рдЧреИрд░-рдореМрдЬреВрдж syscall 4294957285 рдХреА рдЬрд╛рдВрдЪ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?
рд╣рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдФрд░ рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди libseccomp рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИред
рдЗрд╕ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @vt-alt рдХреЛ рд╢реНрд░реЗрдпред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдмреЗрд╣рддрд░ рдорд╕реМрджреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд░рд┐рдкреНрд░реЛрдбреНрдпреВрд╕рд░ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛
рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрднреА рднреА PFC рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЫрджреНрдо-рд╕рд┐рд╕рдХреЙрд▓ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдПрдХ (рдмреЗрдХрд╛рд░) BPF рдлрд╝рд┐рд▓реНрдЯрд░ рдирд┐рдпрдо рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрднреА рднреА PFC рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЫрджреНрдо-рд╕рд┐рд╕рдХреЙрд▓ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдПрдХ (рдмреЗрдХрд╛рд░) BPF рдлрд╝рд┐рд▓реНрдЯрд░ рдирд┐рдпрдо рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреГрдкрдпрд╛ рдЗрд╕ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рдЬрдЯрд┐рд▓ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдкреАрдПрдлрд╕реА рдмреАрдкреАрдПрдл рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдХреГрдкрдпрд╛ рдЗрд╕ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рдЬрдЯрд┐рд▓ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдкреАрдПрдлрд╕реА рдмреАрдкреАрдПрдл рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдпрджрд┐ рдкреАрдПрдлрд╕реА рд╕реЗ рд╕рд┐рд╕реНрдХрд▓ рдЧрд╛рдпрдм рд╣реИ рддреЛ рд╣рдореЗрдВ рдХрдИ рдлрд░реНрдЬреА рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреА рдЬреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реИрдВ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреИрд╕реЗ (рдЧреИрд░-рдореМрдЬреВрдж) рд╕рд┐рд╕реНрдХреЛрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдЬреЛ рд▓реЛрдЧ рд╕реНрдпреВрдбреЛ-рд╕рд┐рд╕реНрдХрд▓ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдкреАрдПрдлрд╕реА рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╣рдЯрд╛рдирд╛ рдПрдХ рдЫреЛрдЯреА рд╕реА рдХрд╡рд╛рдпрдж рд╣реИред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкреАрдПрдлрд╕реА рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмреАрдкреАрдПрдл рдЖрдЙрдЯрдкреБрдЯ рдХреА рдПрдХ рд╕рдЯреАрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ рдФрд░ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред
рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛрдб рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдЖрд╕рд╛рди рддрд░реАрдХрд╛
рд▓реЗрдХрд┐рди, рддрдм рдпрд╣ _generated_ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛрдб рдХреА рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдореЗрдВ рдЫрджреНрдо рд╕рд┐рд╕реНрдХреЛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдкреАрдПрдлрд╕реА рд╕реЗ рд╕рд┐рд╕реНрдХрд▓ рдЧрд╛рдпрдм рд╣реИ рддреЛ рд╣рдореЗрдВ рдХрдИ рдлрд░реНрдЬреА рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреА рдЬреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реИрдВ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреИрд╕реЗ (рдЧреИрд░-рдореМрдЬреВрдж) рд╕рд┐рд╕реНрдХреЛрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЫрджреНрдо рд╕рд┐рд╕реНрдХрд▓ рдЪреЗрдХ рдХреЛрдб рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕рд╛ рдХрд┐ 'рдЕрдиреБрдХреВрд▓рд┐рдд' рдореЗрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ '' рдЖрд░реНрдХ рдХреЗ рд▓рд┐рдП рдРрд╕реЗ рдХреЛрдИ рд╕рд┐рд╕реНрдХреЛ рдирд╣реАрдВ рд╣реИрдВ '), рддрд░реНрдХ рдЕрдВрддрд░ (рд╕рд╢рд░реНрддреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдб рдХрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдбред
рдореИрдВ рдкреАрдПрдлрд╕реА рдХреЛ scmp_bpf_disasm
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмреАрдкреАрдПрдл рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкреАрдПрдлрд╕реА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдореИрдВ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ @vt-alt рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдФрд░ рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣рдо рдкреАрдПрдлрд╕реА рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рд░рд╛рдп рд╣реИ рдХрд┐ рдкреАрдПрдлрд╕реА рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕реНрдпреВрдбреЛ-рд╕рд┐рд╕рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛рдирд╛ рдПрдХ рдЧрд▓рддреА рд╣реИред
@drakenclimber рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдЖрдкрдХреА рдХреЛрдИ рдордЬрдмреВрдд рд░рд╛рдп рд╣реИ?
x86_64 рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдкреБрдирд░реБрддреНрдкрд╛рджрдХ:
#include <stdlib.h>
#include <errno.h>
#include <seccomp.h>
#include "util.h"
int main(int argc, char *argv[])
{
int rc;
struct util_options opts;
scmp_filter_ctx ctx = NULL;
rc = util_getopt(argc, argv, &opts);
if (rc < 0)
goto out;
ctx = seccomp_init(SCMP_ACT_KILL);
if (ctx == NULL)
return ENOMEM;
rc = seccomp_arch_add(ctx, SCMP_ARCH_X32);
if (rc < 0)
goto out;
rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(access), 0);
if (rc < 0)
goto out;
rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(arm_fadvise64_64), 0);
if (rc < 0)
goto out;
rc = util_filter_output(&opts, ctx);
if (rc)
goto out;
out:
seccomp_release(ctx);
return (rc < 0 ? -rc : rc);
}
рдЕрджреНрдпрддрди: TSKIP рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛
рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдлрд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдХреНрдпрд╛ рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрддреБрд▓рд┐рдд рдкреЗрдбрд╝ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо @drakenclimber рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИ?
diff --git a/src/arch-arm.c b/src/arch-arm.c
index 3465111..4dd4b63 100644
--- a/src/arch-arm.c
+++ b/src/arch-arm.c
@@ -54,7 +54,7 @@ int arm_syscall_resolve_name_munge(const char *name)
if (sys == __NR_SCMP_ERROR)
return sys;
- return sys + __SCMP_NR_BASE;
+ return (sys | __SCMP_NR_BASE);
}
/**
@@ -68,7 +68,7 @@ int arm_syscall_resolve_name_munge(const char *name)
*/
const char *arm_syscall_resolve_num_munge(int num)
{
- return arm_syscall_resolve_num(num - __SCMP_NR_BASE);
+ return arm_syscall_resolve_num(num & (~__SCMP_NR_BASE));
}
const struct arch_def arch_def_arm = {
diff --git a/src/arch-x32.c b/src/arch-x32.c
index 7b97fb3..3890968 100644
--- a/src/arch-x32.c
+++ b/src/arch-x32.c
@@ -43,7 +43,7 @@ int x32_syscall_resolve_name_munge(const char *name)
if (sys == __NR_SCMP_ERROR)
return sys;
- return sys + X32_SYSCALL_BIT;
+ return (sys | X32_SYSCALL_BIT);
}
/**
@@ -57,7 +57,7 @@ int x32_syscall_resolve_name_munge(const char *name)
*/
const char *x32_syscall_resolve_num_munge(int num)
{
- return x32_syscall_resolve_num(num - X32_SYSCALL_BIT);
+ return x32_syscall_resolve_num(num & (~X32_SYSCALL_BIT));
}
const struct arch_def arch_def_x32 = {
diff --git a/src/gen_bpf.c b/src/gen_bpf.c
index 55a7958..ae9c3f4 100644
--- a/src/gen_bpf.c
+++ b/src/gen_bpf.c
@@ -1555,6 +1555,10 @@ static int _gen_bpf_syscalls(struct bpf_state *state,
for (s_iter = s_tail; s_iter != NULL; s_iter = s_iter->pri_prv) {
if (!s_iter->valid)
continue;
+ /* skip pseudo-syscalls */
+ if ((s_iter->num & 0x80000000) &&
+ (state->attr->api_tskip == 0 || s_iter->num != -1))
+ continue;
if (*bintree_levels > 0 &&
((syscall_cnt + empty_cnt) % SYSCALLS_PER_NODE) == 0)
рдореИрдВ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ @vt-alt рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдФрд░ рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣рдо рдкреАрдПрдлрд╕реА рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рд░рд╛рдп рд╣реИ рдХрд┐ рдкреАрдПрдлрд╕реА рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕реНрдпреВрдбреЛ-рд╕рд┐рд╕рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛рдирд╛ рдПрдХ рдЧрд▓рддреА рд╣реИред
@drakenclimber рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдЖрдкрдХреА рдХреЛрдИ рдордЬрдмреВрдд рд░рд╛рдп рд╣реИ?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ рдпрд╣ рд╣реИ рдХрд┐ рдкреАрдПрдлрд╕реА рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:
рд╢рд╛рдпрдж рд╣рдо рдкреАрдПрдлрд╕реА рддрд░реНрдХ рдореЗрдВ --no-pseudo-syscalls
рдзреНрд╡рдЬ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдлрд┐рд░ рдпрд╣ рд╢реБрд░реБрдЖрддреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░рд╣ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреАрдкреАрдПрдл рдХрд╛ рдмреЗрд╣рддрд░ рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
_рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: TSKIP_ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛
рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдлрд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдХреНрдпрд╛ рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрддреБрд▓рд┐рдд рдкреЗрдбрд╝ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо @drakenclimber рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИ?
рдХрд╛рдо рдЪрд▓ рдЬрд╛рдпреЗрдЧрд╛ред рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
_рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: TSKIP_ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛
рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдлрд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдХреНрдпрд╛ рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрддреБрд▓рд┐рдд рдкреЗрдбрд╝ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо @drakenclimber рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИ?рдХрд╛рдо рдЪрд▓ рдЬрд╛рдпреЗрдЧрд╛ред рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдВ рдЖрдкрдХреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреБрдирд░реБрддреНрдкрд╛рджрдХ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж!
_рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: TSKIP_ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛
рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдлрд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдХреНрдпрд╛ рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрддреБрд▓рд┐рдд рдкреЗрдбрд╝ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо @drakenclimber рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИ?
рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╕рдВрдЪрд╛рдпрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдпрд╣ jge
рддрд░реНрдХ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИред рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╕рд┐рд╕реНрдХрд▓реНрд╕ (рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рддрд░рд╣) рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рдЗрд╕ рддрд░реНрдХ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ :), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдХреЛ рдЫрджреНрдо-рд╕рд┐рд╕реНрдХрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмреАрдкреАрдПрдл рдмрд╛рдЗрдирд░реА рдкреЗрдбрд╝ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдЙрдЪрд┐рдд рджрд┐рдЦрддрд╛ рд╣реИред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪреЗрдВрдЧреЗ, рдореИрдВ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рджреВрдВрдЧрд╛ред
@@ -1532,11 +1532,31 @@ static int _gen_bpf_syscalls(struct bpf_state *state,
_sys_sort(db_secondary->syscalls, &s_head, &s_tail, optimize);
if (optimize == 2) {
+ /* since pseudo-syscalls are removed from the filter, we need
+ * to calculate the syscall count by hand
+ */
+ for (s_iter = s_tail; s_iter != NULL; s_iter = s_iter->pri_prv) {
+ if (!s_iter->valid)
+ continue;
+
+ /* skip pseudo-syscalls */
+ if ((s_iter->num & 0x80000000) &&
+ (state->attr->api_tskip == 0 || s_iter->num != -1))
+ continue;
+
+ syscall_cnt++;
+ }
+
rc = _gen_bpf_init_bintree(&bintree_hashes, &bintree_syscalls,
- bintree_levels, db->syscall_cnt,
+ bintree_levels, syscall_cnt,
&empty_cnt);
if (rc < 0)
goto out;
+
+ /* reset the syscall_cnt variable because later in this
+ * function it's used as a counter
+ */
+ syscall_cnt = 0;
}
рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ db
рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ "рд╡реИрдз" рд╕рд┐рд╕реНрдХрд▓ рдЧрдгрдирд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЪрд░ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрдорд╛рд░реНрдЯ/рддреЗрдЬ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╢рд╛рдпрдж рд╣рдо PFC рддрд░реНрдХ рдореЗрдВ --no-pseudo-syscalls рдзреНрд╡рдЬ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрд╣ рдЭрдВрдбрд╛ рдХрд╣рд╛рдВ рдЬрд╛рдПрдЧрд╛? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ рдкреАрдПрдлрд╕реА рдореЗрдВ рд╕реНрдпреВрдбреЛ-рд╕рд┐рд╕реНрдХрд▓ рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмреАрдкреАрдПрдл (рдЬрд╛рд╣рд┐рд░ рд╣реИ) рд╕реЗ рд╣рдЯрд╛ рджреВрдВрдЧрд╛, рдФрд░ рдЕрдЧрд░ рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ :), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдХреЛ рдЫрджреНрдо-рд╕рд┐рд╕реНрдХрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмреАрдкреАрдПрдл рдмрд╛рдЗрдирд░реА рдкреЗрдбрд╝ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдЙрдЪрд┐рдд рджрд┐рдЦрддрд╛ рд╣реИред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪреЗрдВрдЧреЗ, рдореИрдВ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рджреВрдВрдЧрд╛ред
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдерд╛ рдХрд┐ рдпрд╣ рд╡реГрдХреНрд╖ рдЕрдиреБрдХреВрд▓рди рдХреЛ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред
@drakenclimber рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдорд╛рдирдХ рдЕрдиреБрдХреВрд▓рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреЗрдбрд╝ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдЬрд┐рддрдирд╛ рд╣реЛ рд╕рдХреЗ рдЙрддрдирд╛ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдЪреЛрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рдПрдХ рдмрд╛рдд рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ "arch-arm.c" рдФрд░ "arch-x32.c" рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рд╢рд╛рдпрдж рд╣рдо PFC рддрд░реНрдХ рдореЗрдВ --no-pseudo-syscalls рдзреНрд╡рдЬ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрд╣ рдЭрдВрдбрд╛ рдХрд╣рд╛рдВ рдЬрд╛рдПрдЧрд╛? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ рдкреАрдПрдлрд╕реА рдореЗрдВ рд╕реНрдпреВрдбреЛ-рд╕рд┐рд╕реНрдХрд▓ рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмреАрдкреАрдПрдл (рдЬрд╛рд╣рд┐рд░ рд╣реИ) рд╕реЗ рд╣рдЯрд╛ рджреВрдВрдЧрд╛, рдФрд░ рдЕрдЧрд░ рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдерд╛ред ;)
рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ; рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдКрдкрд░ рдмрддрд╛рдпрд╛ рд╣реИ, рд╡реИрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдореЗрдВ рдкреНрд░рд╢реНрди рдорд┐рд▓рддреЗ рд░рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдлрд┐рд░ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ :), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдХреЛ рдЫрджреНрдо-рд╕рд┐рд╕реНрдХрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмреАрдкреАрдПрдл рдмрд╛рдЗрдирд░реА рдкреЗрдбрд╝ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдЙрдЪрд┐рдд рджрд┐рдЦрддрд╛ рд╣реИред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪреЗрдВрдЧреЗ, рдореИрдВ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рджреВрдВрдЧрд╛ред
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдерд╛ рдХрд┐ рдпрд╣ рд╡реГрдХреНрд╖ рдЕрдиреБрдХреВрд▓рди рдХреЛ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред
@drakenclimber рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдорд╛рдирдХ рдЕрдиреБрдХреВрд▓рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреЗрдбрд╝ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдЬрд┐рддрдирд╛ рд╣реЛ рд╕рдХреЗ рдЙрддрдирд╛ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдЪреЛрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рдПрдХ рдмрд╛рдд рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ "arch-arm.c" рдФрд░ "arch-x32.c" рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдЬрд╝рд░реВрд░ред рдореИрдВ рдЗрд╕рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред
@drakenclimber "> рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдирдП (рдПрд░) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ"
"рдЫрджреНрдо рд╕рд┐рд╕реНрдХрд▓" рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдЕрд╡рдзрд╛рд░рдгрд╛ рднреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ libseccomp рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдпрд╣рд╛рдБ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рдХреЗрд╡рд▓ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВ рдФрд░ рд╡реЗ рддрдм рдкреНрд░рдХрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рджрд┐рдП рдЧрдП syscall рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдЧреИрд░-рдореМрдЬреВрдж рд╕рд┐рд╕реНрдХрд▓ рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИ? рд╡реЗ рдХрд┐рд╕ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИрдВ? рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЫрджреНрдо рд╕рд┐рд╕реНрдХрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИред
рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдирдП (рдПрд░) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдореЗрдВ рдореМрдЬреВрдж рдЧреИрд░-рдореМрдЬреВрдж рд╕рд┐рд╕реНрдХреЛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдПрдХ рдмрд┐рдВрджреБ рдФрд░ рдЬреЛрдбрд╝рдиреЗ рджреЛред рдпрд╣ рд╕рдм рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рд╕рд╛рд╡рдзрд╛рди рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╕рдордЭ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЖрдк рдирдИ рдЕрд╕реНрдкрд╖реНрдЯ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ (рдЫрджреНрдо рд╕рд┐рд╕реНрдХреЛрд▓ рдХреА) рдФрд░ рдЕрднреНрдпрд╛рд╡реЗрджрди (рдмреАрдкреАрдПрдл рдФрд░ рдкреАрдПрдлрд╕реА) рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ?
@vt-alt рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди v2.5.0 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рд╣рдо BPF рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗ рдЫрджреНрдо-рд╕рд┐рд╕реНрдХрд▓ рдХреЛ рджрдмрд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ PFC рдлрд╝рд┐рд▓реНрдЯрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдирд┐рд░реНрдгрдп рд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрд╕реЗ рдЗрд╕ рдирд┐рд░реНрдгрдп рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣рдо рдЫрджреНрдо-рд╕рд┐рд╕реНрдХрд▓ (рдпрд╣ рдХрдИ рдПрдмреАрдЖрдИ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рд╣реИ) рдХреЗ рдкреАрдЫреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╕рдордЭрд╛рддреЗ рд╣реБрдП рдФрд░ рдЗрд╕реЗ рдореИрдирдкреЗрдЬ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ; рдореИрдВрдиреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдмрдирд╛рдпрд╛ рд╣реИ (рдиреАрдЪреЗ рд▓рд┐рдВрдХ), рдЙрд╕ рдЪрд░реНрдЪрд╛ рдФрд░ рдХрд┐рд╕реА рднреА рдкреАрдЖрд░ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ рдФрд░ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдкреАрдПрдлрд╕реА рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рд╣рдорд╛рд░реЗ рдзреНрдпрд╛рди рдореЗрдВ рдмреАрдкреАрдПрдл рд╕рдорд╕реНрдпрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж; рдЖрдкрдиреЗ рдЕрдЧрд▓реА libseccomp рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреА рд╣реИ!
#264 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдВрджред