Libseccomp: RFE: seccomp_rule_add v2.4.0 . рдХреЗ рдмрд╛рдж рд╕реЗ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдордИ 2019  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: seccomp/libseccomp

рдирдорд╕реНрддреЗ,
рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ ce3dda9a1747cc6a4c044eafe5a2eb653c974919 рджреНрд╡рд╛рд░рд╛ v2.3.3 рдФрд░ v2.4.0 рдХреЗ рдмреАрдЪ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: foo.c.zip ред
рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд┐рдпрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдФрд░ рдЙрдкрд░реНрдпреБрдХреНрдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рдмрд╛рдж рд▓рдЧрднрдЧ 100 рдЧреБрдирд╛ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

foo.c v2.4.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп: 0.448
foo.c v2.3.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп: 0.077

рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдЦреЛрджрд╛ рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ db_col_transaction_start() рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдлрд╝рд┐рд▓реНрдЯрд░ рд╕рдВрдЧреНрд░рд╣ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд┐рдпрдореЛрдВ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП arch_filter_rule_add() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди arch_filter_rule_add() рдХреЙрд▓ arch_syscall_translate() рдЬреЛ arch_syscall_resolve_name() рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдУ (рджрд┐рдП рдЧрдП рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ syscalls рдХреА рд╕рдВрдЦреНрдпрд╛) рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝рдирд╛ рдХрдо рд╕реЗ рдХрдо рдУ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдирд┐рдпрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ * рдкреНрд░рдпреБрдХреНрдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╕рд┐рд╕реНрдХреЛ рдХреА рд╕рдВрдЦреНрдпрд╛) рдЬреЛ рдЖрдИрдПрдордУ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд░рд╛рдм рд╣реИред
рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ Arch_filter_rule_add() рдкрд░ рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХреА рдФрд░ рдпрд╣ рдмрд░рд╛рдмрд░ рд╣реИ 201152 ред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ Arch_filter_rule_add() рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ 896 ред рдФрд░ рдЬреЛ рдореИрдВ рдХреЛрдб рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╡рд╣ рднреА db_col_transaction_start() рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдлрд╝рд┐рд▓реНрдЯрд░ рд╕рдВрдЧреНрд░рд╣ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ arch_filter_rule_add() рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬреЛ рд╣рдореЗрдВ рдЕрдиреБрдорд╛рди рджреЗрддрд╛ рд╣реИ: рдУ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп (рдкрд╣рд▓реЗ рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдирд┐рдпрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ + рджрд┐рдП рдЧрдП рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╕рд┐рд╕реНрдХреЛ рдХреА рд╕рдВрдЦреНрдпрд╛), рдЬреЛ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдИрдПрдордУ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдирд┐рдпрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдПрди рдирд┐рдпрдо рдЬреЛрдбрд╝рдирд╛ рдУ (рдПрди ^ 2) рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЪрд░реНрдЪрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЫреЛрдЯреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдмрд╛рд░-рдмрд╛рд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рдорд╛рдпрдиреЗ рд░рдЦрддреА рд╣реИ?
рдХреБрдЫ рдлрд╝рд┐рд▓реНрдЯрд░реЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо PID рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдб рдХреЛ рдХреЗрд╡рд▓ рд╕реНрд╡рдпрдВ рдХреЛ рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛)ред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдХрд╛рдлреА рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рджреГрд╢реНрдпрдорд╛рди рдУрд╡рд░рд╣реЗрдб рдмрди рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 300 рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИ рдФрд░ libseccomp рдУрд╡рд░рд╣реЗрдб sandboxed рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреНрд░рддрд┐ рд░рди рд▓рдЧрднрдЧ 0.16s рд╣реИ (рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд░реНрдЬрдиреЛрдВ рдмрд╛рд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ)ред

рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЖрдкрдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛!

enhancement prioritlow

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рдо рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рдорд╛рдг рдХреЗ рдХреНрд░рдо рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред

рд╕рднреА 23 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @varqoxред

рд╣рд╛рдВ, syscall рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рдХреА рддрд░рд╣ рдХрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА:

/* XXX - plenty of room for future improvement here */

рдпрджрд┐ рдЖрдк рдЙрд╕ рдХреЛрдб рдХреЛ рд╕реБрдзрд╛рд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!

рдЬреИрд╕рд╛ рдХрд┐ @pcmoore рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ libseccomp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ seccomp рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ _creation_ рдХреЛ рддреЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдкрд░реНрдпрд╛рдкреНрдд рдЕрд╡рд╕рд░ рд╣реИрдВред рдКрдкрд░ рдЖрдкрдХреЗ рд╢реЛрдз рдиреЗ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╕реБрдзрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

_runtime_ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрдбрд╝реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдЖрдкрдиреЗ foo.c рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдерд╛ред рдореЗрд░реЗ рдЗрди-рд╣рд╛рдЙрд╕ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрддреА рдкрд░рд┐рдгрд╛рдо рдЖрд╢рд╛рдЬрдирдХ рджрд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдПрдХ рдФрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рдкреБрд▓ рдЕрдиреБрд░реЛрдз рджреЗрдЦреЗрдВ https://github.com/seccomp/libseccomp/pull/152

рдареАрдХ рд╣реИ, рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ syscall рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред рдЬреЛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ, db_col_transaction_start() рдореЗрдВ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг ред рд╡рд╣рд╛рдБ arch_filter_rule_add() рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ syscall рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдзреАрдорд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореВрд▓ рдирд┐рдпрдо рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджреЗрдЦрддрд╛ рд╣реВрдВ: рд╣рдо рдореМрдЬреВрджрд╛ рдлрд┐рд▓реНрдЯрд░ (рдЙрд░реНрдл рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдбреАрдмреА_рдлрд┐рд▓реНрдЯрд░) рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХреЛ рдЙрдирдХреЗ рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕рднреА рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд╕рднреА рдлрд┐рд▓реНрдЯрд░ _construct_ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ _рдХреЙрдкреА_ рд╕рднреА рдлрд┐рд▓реНрдЯрд░ред рд╣рдореЗрдВ рдЦрд░реЛрдВрдЪ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рддрд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭрд╕реЗ рдХреБрдЫ рдЫреВрдЯ рдЧрдпрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ db_col_transaction_start() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдВрддрд░рд┐рдХ libseccomp рдбреАрдмреА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рднреА рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЗрд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдирд╛ рдХреЛрдИ рдЫреЛрдЯрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рдореВрд▓ рдирд┐рдпрдореЛрдВ рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ (рдХреЛрдб рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ)ред рдореВрд▓ рдирд┐рдпрдореЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рд╕реЗ рд╣рдо рдореМрдЬреВрджрд╛ рдирд┐рдпрдо (рд╕рдВрднрд╛рд╡рд┐рдд рднрд╡рд┐рд╖реНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛) рдХреЛ "рдирд┐рдХрд╛рд▓рдиреЗ" рдХреА рдХреНрд╖рдорддрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдХрд╣рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЗрди-рджреЗрди рдХреЛрдб рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдХреЛрдб рд╡рд╣ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдПрдХ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рд╛рджрдЧреАред

рд╣рдо рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рдорд╛рдг рдХреЗ рдХреНрд░рдо рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░, рд╣рдо рд╢рд╛рдпрдж рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рд▓реЗрди-рджреЗрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдирд┐рдпрдореЛрдВ рдХреА рдирдХрд▓ рдХрд░реЗрдВ, рдкреВрд░реЗ рдкреЗрдбрд╝ рдкрд░ рдирд╣реАрдВ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдЕрд╕рдлрд▓ рд▓реЗрдирджреЗрди рдкрд░ рдкреЗрдбрд╝ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдВред рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рд╕рдордп рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╡рд╛рдкрд╕ рдорд┐рд▓ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдЯреЗрдирд░реЛрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдЧрдорди рджреЗрдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ 2.3x рдкрд░ рдкрд┐рди рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИ

рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреА _"рд╡рд┐рд╢рд╛рд▓"_ рдкреНрд░рдХреГрддрд┐ рдкрд░ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╕рд╛рдкреЗрдХреНрд╖ рдФрд░ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рджреЛрдиреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдорд╛рдирддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╕рднреА рдХреЛ рдпрд╣ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ v2.4 рд╕реЗ рдкрд╣рд▓реЗ libseccomp рд░рд┐рд▓реАрдЬ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рднреЗрджреНрдпрддрд╛ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрдВрдХ #139)ред

рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕реЗ v2.5 рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдкрдиреЗ рдПрдХ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдорд╛рдореВрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ "рд╡рд┐рд╢рд╛рд▓" рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд╣рдХрд░ рдЗрд╕реЗ рдЙрдбрд╝рд╛рдХрд░ рд╕рд╣рд╛рдпрдХ рдирд╣реАрдВ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧ 2.4 . рдХреЗ рдбрд┐рд╕реНрдЯреНрд░реЛ рдЕрдкрдбреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ

@crosbymichael рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдирд╣реАрдВ рдерд╛, рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдФрд░ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕ рдФрд░ рдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЙрд▓ рд╕рд┐рд╕реНрдХреЛ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛, рдЬреИрд╕реЗ 32-рдмрд┐рдЯ x86 рдкрд░ рд╕реЙрдХреЗрдЯ рд╕рд┐рд╕реНрдХреЛ)ред

рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ рд╣реИ (рдКрдкрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджреЗрдЦреЗрдВ), рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдЧрд▓реА рдЫреЛрдЯреА рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рднрдбрд╝рдХрд╛рдК рдирд╣реАрдВ рд╕рдордЭрдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрдард┐рди рд╣реИ, рдпрджрд┐ рдпрд╣ рдЖрдкрдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдкреНрд░рдЧрддрд┐ рд╕реЗ рдирд╛рдЦреБрд╢ рд╣реИрдВ рддреЛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ/рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рд╕реНрд╡рдпрдВ рдХреЛ рдзреНрдпрд╛рди рджреЗрдВ рдФрд░ рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ ...

рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдпрд╛рдж рджрд┐рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╣рдо рд▓реЗрди-рджреЗрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЬреЛ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╕рдм рдХреБрдЫ рд╕рд╛рдордиреЗ рдХреЙрдкреА рдХрд░реЗрдВ); рд╣рдо рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдмрд┐рдирд╛ рдЕрд╕рдлрд▓ рд╣реБрдП рдХрд┐рд╕реА рд▓реЗрдирджреЗрди рдХреЛ рд░реЛрд▓рдмреИрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпреЛрдВ?
рдПрдХ рд╕рд╛рдорд╛рдиреНрдп seccomp_rule_add() рдСрдкрд░реЗрд╢рди рдХреЛ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ; рдпрджрд┐ рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рдЬреЛрдбрд╝ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрд╣реБ-рднрд╛рдЧ рд▓реЗрдирджреЗрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП x86/s390/s390x/рдЖрджрд┐ рдкрд░ рд╕реЙрдХреЗрдЯ/рдЖрдИрдкреАрд╕реА syscalls) рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрд╕рдлрд▓рддрд╛ рдХреЗ рд▓реЗрдирджреЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ( рд╕реНрдореГрддрд┐ рджрдмрд╛рд╡, рдЖрджрд┐ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛)ред

рдкреЗрдбрд╝ рдХреА рдкреНрд░рдХреГрддрд┐ рдФрд░ рдкреЗрдбрд╝ рдХреЗ рдЕрдВрджрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХрд╛рд░рдг рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд┐рдирд╛ рдкреЗрдбрд╝ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдирд╛ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдпрд╣ рдЪреБрдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рд╣рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд▓реЗрдирджреЗрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЗ рдЬрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдФрд░ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрдгрдп рд╡реГрдХреНрд╖ рдХреЛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рд▓реЗрдирджреЗрди рдХреЗ рд╕рд╛рде рдирд┐рдпрдо рдЬреЛрдбрд╝ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд▓реЗрдирджреЗрди рдХреЗ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рддреЗрдЬ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╢реБрдХреНрд░ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рдЧрдпрд╛ рд╣реЛрдЧрд╛: рдЫрд╛рдпрд╛ рдкреЗрдбрд╝ред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рдЯреНрд░реА рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рднреА рд╣рдо рдПрдХ рдирдпрд╛ рд▓реЗрди-рджреЗрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рдлрд▓рддрд╛ рдкрд░ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЯреНрд░реА рдХреЛ рдХрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЙрд╕ рдирд┐рдпрдо рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрднреА-рдЕрднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЯреНрд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ (рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдлрд╝рд┐рд▓реНрдЯрд░ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рддреЗ рд╣реБрдП) рдФрд░ рдЕрдЧрд▓реЗ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ "рдЫрд╛рдпрд╛ рд▓реЗрдирджреЗрди" рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦреЗрдВред рд▓реЗрдирджреЗрди рд╕реНрдиреИрдкрд╢реЙрдЯред рдХреБрдЫ рдиреЛрдЯ:

  • db_col_transaction_start() рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдЫрд╛рдпрд╛ рд▓реЗрдирджреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрджрд┐ рдирд╣реАрдВ рддреЛ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • db_col_transaction_abort() рдХреЛ рд╡реИрд╕рд╛ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рд╡рд╣ рдЕрднреА рдХрд░рддрд╛ рд╣реИ; рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдЕрд╕рдлрд▓ рд▓реЗрдирджреЗрди рдЫрд╛рдпрд╛ рд▓реЗрдирджреЗрди рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдЧрд╛ (рдЗрд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдбрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЕрдЧрд▓рд╛ рд╕рдлрд▓ рд▓реЗрдирджреЗрди рдЫрд╛рдпрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рдПрдХ рдЕрд╕рдлрд▓ рд▓реЗрдирджреЗрди рдЗрддрдирд╛ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рдореБрдЦ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╣рдореЗрдВ рдЕрдиреНрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдкрд░ рдЫрд╛рдпрд╛ рд▓реЗрдирджреЗрди рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрд░реНрдХ/рдПрдмреАрдЖрдИ рдСрдкреНрд╕?, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред рднрд▓реЗ рд╣реА, рдЫрд╛рдпрд╛ рд▓реЗрдирджреЗрди рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рддреБрдЪреНрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдЗрд╕рдХрд╛ рди рдХреЗрд╡рд▓ рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХрд╛ рд▓рд╛рдн рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓реЗрдирджреЗрди рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХрд╛ рднреА рд╣реИред рдпрд╣ рдЕрдм рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬрдм рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдирджреЗрди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░реЗрдВрдЧреЗ (рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдХрднреА рднреА рдмреАрдПрд╕рдбреА "рдкреНрд░рддрд┐рдЬреНрдЮрд╛" рддрдВрддреНрд░ рдХреА рддрд░рд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред

рдЖрдЬ рд░рд╛рдд рдХреЗ рдЦрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдордп рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдКрдкрд░ рдЫрд╛рдпрд╛ рд▓реЗрдирджреЗрди рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд╛рд╕ рдмрдирд╛рдпрд╛ред рдХреЛрдб рдЕрднреА рднреА рдХрдЪреНрдЪрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг (рдиреАрдЪреЗ) рднреА рдХреНрд░реВрдбрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ:

  • рдмреЗрд╕рд▓рд╛рдЗрди рдЯреЗрд╕реНрдЯ рдУрд╡рд░рд╣реЗрдб
# time for i in {0..20000}; do /bin/true; done
real    0m10.479s
user    0m7.641s
sys     0m3.924s
  • рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛
# time for i in {0..20000}; do ./42-sim-adv_chains > /dev/null; done

real    0m16.303s
user    0m12.584s
sys     0m4.501s
  • рд╕рдордЭреМрддрд╛
time for i in {0..20000}; do ./42-sim-adv_chains > /dev/null; done

real    0m15.021s
user    0m11.540s
sys     0m4.387s

рдпрджрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдУрд╡рд░рд╣реЗрдб рдШрдЯрд╛рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдЗрд╕ "рдкрд░реАрдХреНрд╖рдг" рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд▓рдЧрднрдЧ 20% рдХреА рд╡реГрджреНрдзрд┐ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрдЯрд┐рд▓ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд▓рд╛рдн рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ (рдмрд╣реБрдд рдмреЗрд╣рддрд░?) рд╣реЛрдЧрд╛ред

@varqox рдФрд░/рдпрд╛ @crosbymichael рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдкреИрдЪ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рд╛рдл рдХрд░ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдкреАрдЖрд░ рдмрдирд╛рддрд╛ рд╣реВрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рдкрд╛рдПрдВрдЧреЗ?

рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдБ рд╣реИ:

рдирдорд╕реНрддреЗ,
рдореБрджреНрджрд╛ ce3dda9 рджреНрд╡рд╛рд░рд╛ v2.3.3 рдФрд░ v2.4.0 рдХреЗ рдмреАрдЪ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: foo.c.zip ред
рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд┐рдпрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдФрд░ рдЙрдкрд░реНрдпреБрдХреНрдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рдмрд╛рдж рд▓рдЧрднрдЧ 100 рдЧреБрдирд╛ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

foo.c v2.4.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп: 0.448
foo.c v2.3.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп: 0.077

рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдкреАрдЖрд░ рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдкрд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВред

рд╣рд╛рдп @varqox , рд╣рд╛рдВ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЖрдкрдиреЗ рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХреИрд╕рд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкреАрдЖрд░ #180 рдХреЛ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ - рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдп @pcmoore ,

рдЗрд╕ рдкреАрдЖрд░ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдкреАрдЖрд░ #180 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдкрд░рд┐рдгрд╛рдо рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛рдЬрдирдХ рд╣реИред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдбреЙрдХрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп-рдЬрд╛рдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ libseccomp 2.4.x рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реИрдВред
рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдкреАрдЖрд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди libseccomp 2.3.3 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рд╡рд┐рд╡рд░рдг рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╣реИрдВ:

рдкрд░реНрдпрд╛рд╡рд░рдг

рдореИрдХрдмреБрдХ рдкреНрд░реЛ (15-рдЗрдВрдЪ, рдордзреНрдп 2015) рдкрд░ рдЙрдмрдВрдЯреВ 19.04 рд╡реАрдПрдо (2 рд╕реАрдкреАрдпреВ, 2 рдЬреА рдореЗрдореЛрд░реА)
рдХрд░реНрдиреЗрд▓ 5.0.0-32-рдЬреЗрдиреЗрд░рд┐рдХ
рдбреЙрдХрд░ рд╕реАрдИ 19.03.2

рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛:

20 рдХрдВрдЯреЗрдирд░ рддреИрдпрд╛рд░ рдХрд░реЗрдВ:

for i in $(seq 1 20)
do
  docker run -d --name bb$i busybox sleep 3d
done

рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдкрд░ docker exec рдлрд╝рд╛рдпрд░ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдБ

for i in $(seq 1 20)
do 
  /usr/bin/time -f "%E real" docker exec bb$i true & 
done

рдкрд░рд┐рдгрд╛рдо

libseccomp 2.3.3

0:01.05 real
0:01.12 real
0:01.16 real
0:01.20 real
0:01.23 real
0:01.27 real
0:01.31 real
0:01.35 real
0:01.37 real
0:01.38 real
0:01.40 real
0:01.41 real
0:01.40 real
0:01.40 real
0:01.45 real
0:01.46 real
0:01.47 real
0:01.48 real
0:01.48 real
0:01.49 real

libseccomp 2.4.1

0:00.98 real
0:01.63 real
0:01.67 real
0:01.95 real
0:02.55 real
0:02.70 real
0:02.70 real
0:02.96 real
0:03.04 real
0:03.16 real
0:03.17 real
0:03.21 real
0:03.23 real
0:03.27 real
0:03.24 real
0:03.29 real
0:03.27 real
0:03.29 real
0:03.28 real
0:03.27 real

рдЖрдкрдХрд╛ рдкреАрдЖрд░ рдмрд┐рд▓реНрдб

0:00.95 real
0:01.12 real
0:01.20 real
0:01.23 real
0:01.28 real
0:01.29 real
0:01.31 real
0:01.37 real
0:01.38 real
0:01.40 real
0:01.43 real
0:01.43 real
0:01.44 real
0:01.45 real
0:01.42 real
0:01.47 real
0:01.48 real
0:01.48 real
0:01.48 real
0:01.50 real

рд╡рд┐рд╡рд┐рдз рдиреЛрдЯреНрд╕

  • рдореИрдВрдиреЗ рдЗрд╕ рдкреАрдЖрд░ рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 2.4.1 рдХреЛ AC_INIT рдореЗрдВ configure.ac рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдерд╛ред
  • рдпрд╣ рдХрд╕реНрдЯрдо рдмрд┐рд▓реНрдб /usr/local/lib рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХрд╕реНрдЯрдо рдмрд┐рд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ldd /usr/bin/runc рдЪрд▓рд╛рдХрд░ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ред
  • рдореИрдВрдиреЗ рдХреБрдЫ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдпрд╛, рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдмрд╣реБрдд рдХрдо рднрд┐рдиреНрдирддрд╛рдПрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рд╡реЗ рдЖрдХрд╕реНрдорд┐рдХ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИрдВред

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, @xinfengliu рдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдп @pcmoore ,
рдЗрд╕ рдЬрдирд╕рдВрдкрд░реНрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ libseccomp рдкреНрд░рджрд░реНрд╢рди рдХреЛ v2.3.3.3 рдХреЗ рд╕рд╛рде рддреБрд▓рдиреАрдп рд╕реНрддрд░ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо

рдлреВ.рд╕реА

g++ foo.c -lseccomp -o foo -O3
for ((i=0; i<10; ++i)); do time ./foo; done 

libseccomp 2.3.3

./foo  0.01s user 0.00s system 98% cpu 0.018 total
./foo  0.02s user 0.00s system 98% cpu 0.020 total
./foo  0.02s user 0.00s system 98% cpu 0.019 total
./foo  0.02s user 0.00s system 98% cpu 0.018 total
./foo  0.02s user 0.00s system 98% cpu 0.019 total
./foo  0.02s user 0.00s system 98% cpu 0.019 total
./foo  0.02s user 0.00s system 98% cpu 0.019 total
./foo  0.02s user 0.00s system 98% cpu 0.019 total
./foo  0.02s user 0.00s system 98% cpu 0.018 total
./foo  0.02s user 0.00s system 98% cpu 0.019 total

рдФрд╕рдд: 0.0188 s

libseccomp 2.4.2

./foo  0.19s user 0.00s system 99% cpu 0.195 total
./foo  0.19s user 0.00s system 99% cpu 0.194 total
./foo  0.19s user 0.00s system 99% cpu 0.193 total
./foo  0.19s user 0.00s system 99% cpu 0.196 total
./foo  0.19s user 0.00s system 99% cpu 0.195 total
./foo  0.20s user 0.00s system 99% cpu 0.196 total
./foo  0.19s user 0.00s system 99% cpu 0.194 total
./foo  0.20s user 0.00s system 99% cpu 0.197 total
./foo  0.19s user 0.00s system 99% cpu 0.195 total
./foo  0.19s user 0.00s system 99% cpu 0.194 total

рдФрд╕рдд: 0.1949 s

рдкреАрдЖрд░ #180

./foo  0.01s user 0.01s system 98% cpu 0.012 total
./foo  0.01s user 0.00s system 97% cpu 0.013 total
./foo  0.01s user 0.00s system 96% cpu 0.013 total
./foo  0.01s user 0.01s system 97% cpu 0.014 total
./foo  0.01s user 0.00s system 97% cpu 0.012 total
./foo  0.01s user 0.00s system 98% cpu 0.013 total
./foo  0.01s user 0.00s system 98% cpu 0.012 total
./foo  0.01s user 0.00s system 98% cpu 0.013 total
./foo  0.01s user 0.00s system 97% cpu 0.013 total
./foo  0.01s user 0.00s system 97% cpu 0.011 total

рдФрд╕рдд: 0.0126 s

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреАрдЖрд░ рдЗрд╕ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ v2.3.3 рд╕реЗ рдЕрдзрд┐рдХ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред

рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдФрд░ рд▓реЛрдбрд┐рдВрдЧ (seccomp_init() рд╕реЗ seccomp_load() рддрдХ) рдореЗрд░реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдлрд┐рд▓реНрдЯрд░ рдФрд░ рдХреБрдЫ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдУрд╡рд░рд╣реЗрдб

libseccomp 2.3.3

Measured: 0.0052 s
Measured: 0.0040 s
Measured: 0.0046 s
Measured: 0.0042 s
Measured: 0.0038 s
Measured: 0.0038 s
Measured: 0.0039 s
Measured: 0.0036 s
Measured: 0.0042 s
Measured: 0.0044 s
Measured: 0.0036 s
Measured: 0.0037 s
Measured: 0.0044 s
Measured: 0.0035 s
Measured: 0.0035 s
Measured: 0.0035 s
Measured: 0.0040 s
Measured: 0.0037 s
Measured: 0.0043 s
Measured: 0.0042 s
Measured: 0.0035 s
Measured: 0.0034 s
Measured: 0.0038 s
Measured: 0.0035 s
Measured: 0.0035 s
Measured: 0.0037 s
Measured: 0.0038 s

рдФрд╕рдд: 0.0039 s

libseccomp 2.4.2

Measured: 0.0496 s
Measured: 0.0480 s
Measured: 0.0474 s
Measured: 0.0475 s
Measured: 0.0479 s
Measured: 0.0479 s
Measured: 0.0492 s
Measured: 0.0485 s
Measured: 0.0491 s
Measured: 0.0490 s
Measured: 0.0484 s
Measured: 0.0483 s
Measured: 0.0480 s
Measured: 0.0482 s
Measured: 0.0474 s
Measured: 0.0483 s
Measured: 0.0507 s
Measured: 0.0472 s
Measured: 0.0482 s
Measured: 0.0471 s
Measured: 0.0498 s
Measured: 0.0489 s
Measured: 0.0474 s
Measured: 0.0494 s
Measured: 0.0483 s
Measured: 0.0498 s
Measured: 0.0492 s

рдФрд╕рдд: 0.0466 s

рдкреАрдЖрд░ #180

Measured: 0.0058 s
Measured: 0.0059 s
Measured: 0.0054 s
Measured: 0.0046 s
Measured: 0.0059 s
Measured: 0.0048 s
Measured: 0.0045 s
Measured: 0.0051 s
Measured: 0.0052 s
Measured: 0.0053 s
Measured: 0.0048 s
Measured: 0.0048 s
Measured: 0.0045 s
Measured: 0.0044 s
Measured: 0.0044 s
Measured: 0.0059 s
Measured: 0.0044 s
Measured: 0.0046 s
Measured: 0.0046 s
Measured: 0.0044 s
Measured: 0.0044 s
Measured: 0.0062 s
Measured: 0.0047 s
Measured: 0.0044 s
Measured: 0.0044 s
Measured: 0.0044 s
Measured: 0.0044 s

рдФрд╕рдд: 0.0049 s

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкреАрдЖрд░ v2.3.3 рд╕реЗ рдмреЗрд╣рддрд░ рд╕рдордп рджреЗрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдпрд╣ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИ (рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд┐рдпрдореЛрдВ рдФрд░ рджреЛ рдмрдбрд╝реЗ рдлрд┐рд▓реНрдЯрд░ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП seccomp_merge() рдЪрд▓рд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЕрднреА рднреА v2.4.2 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ рджрд╕ рдЧреБрдирд╛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред

@varqox рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдЬреИрд╕реЗ рд╣реА @drakenclimber рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдВрддрд┐рдо рджреМрд░ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ (рдФрд░ рдореИрдВ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдП рдЧрдП рдХрд┐рд╕реА рднреА рд╢реЗрд╖ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВ), рд╣рдо рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░ рджреЗрдВрдЧреЗред

рдЖрд╣, рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ @drakenclimber рдиреЗ рдкреАрдЖрд░ рдХреЛ рд╕реНрд╡реАрдХреГрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдм рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░ рджреВрдВрдЧрд╛ред

рдореИрдВрдиреЗ рдЕрднреА рдкреАрдЖрд░ # 180 рдХреЛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдХреЛрдИ рд╢реЗрд╖ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рддреЛ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдФрд░/рдпрд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рдЖрдкрдХреЗ рдзреИрд░реНрдп рдФрд░ рдорджрдж рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

@pcmoore рдХреНрдпрд╛ рдЖрдк рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╢реАрдШреНрд░ рд╣реА рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?

рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ libseccomp v2.5 рд░рд┐рд▓реАрдЬрд╝ рдорд╛рдЗрд▓рд╕реНрдЯреЛрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ v2.5 рд░рд┐рд▓реАрдЬрд╝ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рд╣рдорд╛рд░реА рдкреНрд░рдЧрддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

alban picture alban  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Xyene picture Xyene  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

srd424 picture srd424  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pcmoore picture pcmoore  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

oxr463 picture oxr463  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ