Libseccomp: RFE: рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕реА рдорд╛рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЕрдХреНрддреВре░ 2017  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: seccomp/libseccomp

рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ libseccomp рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕реА рдорд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реБрдИ:

  1. syscall рдХреБрдЫ рдЖрд░реНрдХ рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ
  2. рдХреБрдЫ рдЖрд░реНрдХ рдкрд░ syscall рдХрд╛ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕ рд╣реИ, рд╕реЙрдХреЗрдЯ/рд╕реЙрдХреЗрдЯрдХреЙрд▓ рд╕реЛрдЪреЗрдВ)
  3. рдЕрдиреНрдп рддреНрд░реБрдЯрд┐ рдорд╛рдорд▓реЗ

seccomp рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдХреЙрд▓рд░ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛рд░рдгреЛрдВ рдХреЛ рдШрд╛рддрдХ рдорд╛рди рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдХреЛ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реА (рдХреЗрд╡рд▓ -EINVAL рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдорд╛рдиреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╕рд┐рд╕реНрдЯрдордб рдкреАрдЖрд░ 6952 рднреА рджреЗрдЦреЗрдВред

enhancement prioritmedium

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

рдмрд╣реБрдд рдмрд╣реБрдд рд╢реБрдХреНрд░рд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЖрдзрд╛-рдмреЗрдХреНрдб рдкреИрдЪрд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдорд╛рдкреНрдд рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛ред

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

рд╣рд╛рдп @topimiettinen , рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рд▓рдЧрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВред

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

  • рд╕рдВрднрд╛рд╡рд┐рдд рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдСрдбрд┐рдЯ рдХрд░реЗрдВ
  • рддрдп рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпреЗ рд░рд┐рдЯрд░реНрди рдорд╛рди рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдпрджрд┐ рд╡реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
  • рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреНрдпрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдореИрдирдкреЗрдЬ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░реЗрдВ

рд╡рд┐рдЪрд╛рд░?

рд╣рд╛рдп @topimiettinen , рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рд▓рдЧрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВред

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

* manually audit each API call to generate a list of possible return values

* decide if these return values make sense, modify the code if they don't

* document each possible return value in the associated manpage with a brief explanation of what the error code indicates

рд╡рд┐рдЪрд╛рд░?

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

рдФрд░ рд╣рд╛рдБ, рдЬрдмрдХрд┐ рдЧреНрд▓реИрдорд░рд╕ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдореИрдВ рдХреБрдЫ рд╕реАрдЧреНрд░реБрдк рд╕рд╛рдордЧреНрд░реА рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ рдЬрд┐рд╕рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╕реАрдЧреНрд░реБрдк рдлреАрдЪрд░ рдХреЛ рдЧрд▓рдд рд╕рдордЭрд╛ ... рд╡реЗ рдХрд░ рд╕рдХрддреЗред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рджреЗрдЦрдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореВрд▓ рдЕрдиреБрд░реЛрдз рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдлрд▓рддрд╛ рдореЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдерд╛, рдЬреЛ рдХреБрдЫ рд╣рдж рддрдХ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИред рд╕рдореАрдХреНрд╖рд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорджрдж рдХрд░реЗрдЧреА, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдПрдХ рд╣рдж рддрдХ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ рднреАред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рджреЗрдЦрдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореВрд▓ рдЕрдиреБрд░реЛрдз рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдлрд▓рддрд╛ рдореЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдерд╛, рдЬреЛ рдХреБрдЫ рд╣рдж рддрдХ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИред рд╕рдореАрдХреНрд╖рд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорджрдж рдХрд░реЗрдЧреА, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдПрдХ рд╣рдж рддрдХ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ рднреАред

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

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

рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдХрдо рд╕реЗ рдХрдо @drakenclimber рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЗрд╕реЗ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рднреА рдХрдо рд╕рдордп рд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реИ!) рдмрд╛рдж рдореЗрдВ рдЖрдЬ (рдХрд▓?) рдореИрдВ рдЗрд╕реЗ рдЯреБрдХрдбрд╝реЛрдВ/рдПрдХрд╛рдзрд┐рдХ-рдореБрджреНрджреЛрдВ (рдХреБрдЫ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде) рдореЗрдВ рддреЛрдбрд╝ рджреВрдВрдЧрд╛ рддрд╛рдХрд┐ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдирд┐рдкрдЯрдирд╛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХреЗред

рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХреЗ рд░реВрдк рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ libseccomp рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдиреМ рдЕрджреНрд╡рд┐рддреАрдп рддреНрд░реБрдЯрд┐ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдПрдХ рдмрд╣реБрдд рд╣реА рдХрдЪреНрдЪреЗ рдЪреЗрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░):

# grep -e "-E[A-Z0-9]\+" src/*.{h,c} | sed 's/.*-\(E[A-Z0-9]\+\).*/\1/' | sort -u
EACCES
EDOM
EEXIST
EFAULT
EINVAL
ENOMEM
EOPNOTSUPP
EPERM
ESRCH

... рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╕реНрдерд╛рди рдХреЛ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рд╣рдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрдердкреВрд░реНрдг рдорд╛рди рд╕реЗ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдпрд╣ рдЗрд░рд╛рджрд╛ рд╕реЗ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ libseccomp API рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИ:

const struct scmp_version *seccomp_version(void)
unsigned int seccomp_api_get(void)
int seccomp_api_set(unsigned int level)
scmp_filter_ctx seccomp_init(uint32_t def_action)
int seccomp_reset(scmp_filter_ctx ctx, uint32_t def_action)
void seccomp_release(scmp_filter_ctx ctx)
int seccomp_merge(scmp_filter_ctx ctx_dst, scmp_filter_ctx ctx_src)
uint32_t seccomp_arch_resolve_name(const char *arch_name)
uint32_t seccomp_arch_native(void)
int seccomp_arch_exist(const scmp_filter_ctx ctx, uint32_t arch_token)
int seccomp_arch_add(scmp_filter_ctx ctx, uint32_t arch_token)
int seccomp_arch_remove(scmp_filter_ctx ctx, uint32_t arch_token)
int seccomp_load(const scmp_filter_ctx ctx)
int seccomp_attr_get(const scmp_filter_ctx ctx, enum scmp_filter_attr attr, uint32_t *value)
int seccomp_attr_set(scmp_filter_ctx ctx, enum scmp_filter_attr attr, uint32_t value)
char *seccomp_syscall_resolve_num_arch(uint32_t arch_token, int num)
int seccomp_syscall_resolve_name_arch(uint32_t arch_token, const char *name)
int seccomp_syscall_resolve_name_rewrite(uint32_t arch_token, const char *name)
int seccomp_syscall_resolve_name(const char *name)
int seccomp_syscall_priority(scmp_filter_ctx ctx, int syscall, uint8_t priority)
int seccomp_rule_add_array(scmp_filter_ctx ctx, uint32_t action, int syscall, unsigned int arg_cnt, const struct scmp_arg_cmp *arg_array)
int seccomp_rule_add(scmp_filter_ctx ctx, uint32_t action, int syscall, unsigned int arg_cnt, ...)
int seccomp_rule_add_exact_array(scmp_filter_ctx ctx, uint32_t action, int syscall, unsigned int arg_cnt, const struct scmp_arg_cmp *arg_array)
int seccomp_rule_add_exact(scmp_filter_ctx ctx, uint32_t action, int syscall, unsigned int arg_cnt, ...)
int seccomp_notify_alloc(struct seccomp_notif **req, struct seccomp_notif_resp **resp)
void seccomp_notify_free(struct seccomp_notif *req, struct seccomp_notif_resp *resp)
int seccomp_notify_receive(int fd, struct seccomp_notif *req)
int seccomp_notify_respond(int fd, struct seccomp_notif_resp *resp)
int seccomp_notify_id_valid(int fd, uint64_t id)
int seccomp_notify_fd(const scmp_filter_ctx ctx)
int seccomp_export_pfc(const scmp_filter_ctx ctx, int fd)
int seccomp_export_bpf(const scmp_filter_ctx ctx, int fd)

рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ "int" рд▓реМрдЯрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдореВрд╣ рдЬрд┐рдирдореЗрдВ рд╕рдорд╛рди рдХреЛрдб рдкрде рдФрд░ рд╡рд╛рдкрд╕реА рдорд╛рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

  • рд╕рдореВрд╣ рдЕ
int seccomp_arch_exist(const scmp_filter_ctx ctx, uint32_t arch_token)
int seccomp_arch_add(scmp_filter_ctx ctx, uint32_t arch_token)
int seccomp_arch_remove(scmp_filter_ctx ctx, uint32_t arch_token)
  • рдЧреНрд░реБрдк рдмреА
int seccomp_attr_get(const scmp_filter_ctx ctx, enum scmp_filter_attr attr, uint32_t *value)
int seccomp_attr_set(scmp_filter_ctx ctx, enum scmp_filter_attr attr, uint32_t value)
  • рд╕рдореВрд╣ рд╕реА
int seccomp_syscall_resolve_name_arch(uint32_t arch_token, const char *name)
int seccomp_syscall_resolve_name_rewrite(uint32_t arch_token, const char *name)
int seccomp_syscall_resolve_name(const char *name)
  • рд╕рдореВрд╣ рдбреА
int seccomp_rule_add_array(scmp_filter_ctx ctx, uint32_t action, int syscall, unsigned int arg_cnt, const struct scmp_arg_cmp *arg_array)
int seccomp_rule_add(scmp_filter_ctx ctx, uint32_t action, int syscall, unsigned int arg_cnt, ...)
int seccomp_rule_add_exact_array(scmp_filter_ctx ctx, uint32_t action, int syscall, unsigned int arg_cnt, const struct scmp_arg_cmp *arg_array)
int seccomp_rule_add_exact(scmp_filter_ctx ctx, uint32_t action, int syscall, unsigned int arg_cnt, ...)
  • рд╕рдореВрд╣ рдИ
int seccomp_notify_receive(int fd, struct seccomp_notif *req)
int seccomp_notify_respond(int fd, struct seccomp_notif_resp *resp)
int seccomp_notify_id_valid(int fd, uint64_t id)
int seccomp_notify_fd(const scmp_filter_ctx ctx)
  • рд╕рдореВрд╣ рдПрдл
int seccomp_load(const scmp_filter_ctx ctx)
int seccomp_export_bpf(const scmp_filter_ctx ctx, int fd)

... рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд░реЛрдХреНрдд рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рдХреЗ рдХреЛрдб рдкрде рдФрд░/рдпрд╛ рд╡рд╛рдкрд╕реА рдорд╛рди рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИред

рд╕рдореВрд╣ рд╕реА рдХреЗрд╡рд▓ __NR_SCMP_ERROR рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЧреНрд░реБрдк рдбреА EINVAL, EPERM, EOPNOTSUPP, ENOMEM, EDOM, EFAULT, EEXIST рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

seccomp_load() EINVAL, ENOMEM, ESRCH рдФрд░ prctl() (рдХреЗрд╡рд▓ EACCES, EFAULT, EINVAL рдХреЗ рд▓рд┐рдП PR_SET_NO_NEW_PRIVS рдФрд░ PR_SET_SECCOMP) рдФрд░ seccomp() (EACCES, EFAULT, MEINVAL, ENOME) syscalls рд╕реЗ рдЙрдирдХреЗ рдореИрдиреБрдЕрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЧрд▓рдд рдорд╛рди рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрдиреНрдиреЗред

рдЬрдм libseccomp рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ рддреЛ рдХреЙрд▓рд░ рдХреЛ рд╡рд╛рдкрд╕ syscall рддреНрд░реБрдЯрд┐рдпрд╛рдБ, рдЬреИрд╕реЗ prctl() рдФрд░ seccomp(), рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдорд╛рди (рд╢рд╛рдпрдж ENOSYS?) рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ libseccomp рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рди рд╣реЛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди (рдпрд╛ ABI рдЕрдВрддрд░)ред

рдпрджрд┐ рдпрд╣ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЬрд╛рддреА рд╣реИ, рддреЛ рд╢рд╛рдпрдж рд╣рдо рдПрдХ рдирдпрд╛ attr рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЧрд▓рдд рдорд╛рди рдХреЛ рд╕реАрдзреЗ рдХреЙрд▓рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред

рд╕рдВрднрд╡рддрдГ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдИ рдПрдмреАрдЖрдИ/рдПрдкреАрдЖрдИ рдЯреВрдЯрдирд╛ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ libseccomp рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЧрд▓рдд рдореВрд▓реНрдпреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗрд╡рд▓ рдХреБрдЫ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ ugetrlimit рдХреЗрд╡рд▓ x86_32 рдкрд░) рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЧрд▓рдд рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдирд╛рдо рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрд▓рдЧ (рд╕рдВрднрд╡рддрдГ рд╕рд┐рдВрдереЗрдЯрд┐рдХ) рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА .

рдареАрдХ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ "рд╡рд┐рдлрд▓рддрд╛ рдкрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп" рдЗрд╕рд▓рд┐рдП рдЬрдм рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рдирд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реЛрдЧрд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрд▓рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдзрд╛рд░рдгрд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рдмрджрд▓ рд░рд╣реА рд╣реИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ ABI рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рдЧрд▓рдд рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдПрдХ рд╕рд╛рд░реНрдердХ рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИред

рдареАрдХ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ "рд╡рд┐рдлрд▓рддрд╛ рдкрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп" рдЗрд╕рд▓рд┐рдП рдЬрдм рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рдирд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реЛрдЧрд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрд▓рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдзрд╛рд░рдгрд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рдмрджрд▓ рд░рд╣реА рд╣реИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ ABI рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рдЧрд▓рдд рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдПрдХ рд╕рд╛рд░реНрдердХ рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВред

рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рдореВрд▓реНрдпрд╛рдВрдХрди рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдо рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдкрд░ рдЧрд▓рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд╡рд╛рдкрд╕ рдХрд┐рдП рдЧрдП рдЧрд▓рдд рдореВрд▓реНрдпреЛрдВ рдХреА рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рд╣реЛрдЧрд╛ред

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

  • [x] seccomp_reset
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, ENOMEMред

  • [x] seccomp_merge
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EDOM, EEXIST, ENOMEMред

  • [x] seccomp_arch_exist
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EEXISTред

  • [x] seccomp_arch_add
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EEXIST, ENOMEM, EDOMред

  • [x] seccomp_arch_remove
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EEXISTред

  • [x] seccomp_load
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, ENOMEM, ESRCH, ECANCELEDред

  • [x] seccomp_attr_get
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EEXISTред

  • [x] seccomp_attr_set
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EACCES, EOPNOTSUPP, EEXISTред

  • [x] seccomp_syscall_resolve_name_arch
    рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд, рд╡рд┐рдлрд▓рддрд╛ рдкрд░ syscall рдорд╛рди рдпрд╛ __NR_SCMP_ERROR рд▓реМрдЯрд╛рддрд╛ рд╣реИред

  • [x] seccomp_syscall_resolve_name_rewrite
    рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд, рд╡рд┐рдлрд▓рддрд╛ рдкрд░ syscall рдорд╛рди рдпрд╛ __NR_SCMP_ERROR рд▓реМрдЯрд╛рддрд╛ рд╣реИред

  • [x] seccomp_syscall_resolve_name
    рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд, рд╡рд┐рдлрд▓рддрд╛ рдкрд░ syscall рдорд╛рди рдпрд╛ __NR_SCMP_ERROR рд▓реМрдЯрд╛рддрд╛ рд╣реИред

  • [x] seccomp_syscall_priority
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EDOM, EFAULT, ENOMEMред

  • [x] seccomp_rule_add_array
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EOPNOTSUPP, ENOMEM, EDOM, EFAULT, EEXISTред

  • [x] seccomp_rule_add
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EOPNOTSUPP, ENOMEM, EDOM, EFAULT, EEXISTред

  • [x] seccomp_rule_add_exact_array
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EOPNOTSUPP, ENOMEM, EDOM, EFAULT, EEXISTред

  • [x] seccomp_rule_add_exact
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, EOPNOTSUPP, ENOMEM, EDOM, EFAULT, EEXISTред

  • [x] seccomp_notify_alloc
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EOPNOTSUPP, ENOMEM, EFAULT, ECANCELEDред рдореИрдирдкреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреНрд░реБрдЯрд┐ рдкрд░ -1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╡рддрдГ рдХреЗрд╡рд▓ seccomp() рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред

  • [x] seccomp_notify_receive
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EOPNOTSUPP рдФрд░ ECANCELEDред рдореИрдирдкреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреНрд░реБрдЯрд┐ рдкрд░ -1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╡рддрдГ рдХреЗрд╡рд▓ seccomp() рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред

  • [x] seccomp_notify_response
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EOPNOTSUPP рдФрд░ ECANCELEDред рдореИрдирдкреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреНрд░реБрдЯрд┐ рдкрд░ -1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╡рддрдГ рдХреЗрд╡рд▓ seccomp() рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред

  • [x] seccomp_notify_id_valid
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EOPNOTSUPP рдФрд░ ECANCELEDред рдореИрдирдкреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА -ENOENT рдСрди рдПрд░рд░ (рдЕрдорд╛рдиреНрдп рдЖрдИрдбреА) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╡рдд: рдХреЗрд╡рд▓ seccomp() рдЗрд░рдиреЛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред

  • [x] seccomp_notify_fd
    рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд, рдЕрдзрд┐рд╕реВрдЪрдирд╛ fd рд▓реМрдЯрд╛рддрд╛ рд╣реИред

  • [x] seccomp_export_pfc
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL рдФрд░ ECANCELEDред

  • [x] seccomp_export_bpf
    рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдЯрд░реНрди: EINVAL, ENOMEM, рдФрд░ ECANCELEDред

рдЕрдм рдЬрдмрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рдд рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреМрди рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛрдб рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рд╕рдВрдЧрдд рд╣реИрдВред рдЙрд╕ рдЖрдЦрд┐рд░реА рдмрд┐рдЯ рдХреЛ рдХрд╛рдлреА рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдПрдХ рдкреАрдЖрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╕реБрдзрд╛рд░ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗрдВ, рдореИрдВ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред

ENOSYS рдХреА рдмрдЬрд╛рдп "рд╡рд┐рд╢реЗрд╖" рдкреНрд░рдХреГрддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рд╣рдорд╛рд░реЗ рдХрд░реНрдиреЗрд▓/libc рдХреИрдЪ-рдСрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд░рдХреНрд╖рдг рд╣реИред рдореБрдЭреЗ рдЕрдиреНрдп рдореВрд▓реНрдпреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреА рд╣реЛрдЧреА, рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреЛрдИ рдордЬрдмреВрдд рднрд╛рд╡рдирд╛/рд╡рд┐рдЪрд╛рд░ рд╣реИ?

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

ENOSYS рдХреА рдмрдЬрд╛рдп "рд╡рд┐рд╢реЗрд╖" рдкреНрд░рдХреГрддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рд╣рдорд╛рд░реЗ рдХрд░реНрдиреЗрд▓/libc рдХреИрдЪ-рдСрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд░рдХреНрд╖рдг рд╣реИред рдореБрдЭреЗ рдЕрдиреНрдп рдореВрд▓реНрдпреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреА рд╣реЛрдЧреА, рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреЛрдИ рдордЬрдмреВрдд рднрд╛рд╡рдирд╛/рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рдИрдЖрдИрдУ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдИрдЖрдИрдУ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рддреНрд░реБрдЯрд┐ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдкреАрдЖрдИ рдХреЛ рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдЧрд▓рдд рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • SCMP_ERROR_UNKNOWN_SYSCALL: syscall libseccomp рджреНрд╡рд╛рд░рд╛ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ: рдХреЙрд▓рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП syscall рдирд╛рдо рдореЗрдВ рдЯрд╛рдЗрдкреЛ)
  • SCMP_ERROR_SYSCALL_NOT_FOR_THIS_ARCH: syscall libseccomp рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ: рдХреЙрд▓рд░ рдХреЗрд╡рд▓ рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
  • SCMP_ERROR_API_USAGE: libseccomp рдХреЙрд▓рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: рдХреЙрд▓рд░ рдЬреЛрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИ ()
  • SCMP_ERROR_KERNEL_OTHER: libseccomp рдЗрдирдкреБрдЯ рдФрд░ рдХреЙрд▓ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдареАрдХ рдерд╛, рд▓реЗрдХрд┐рди рдХрд░реНрдиреЗрд▓ рдиреЗ рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЬреИрд╕реЗ ENOMEM, EPERM, ENOSYS: рдХреЙрд▓рд░ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреЙрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ (рдЬреИрд╕реЗ EFAULT) рдХреЗ рдХрд╛рд░рдг libseccomp рджреНрд╡рд╛рд░рд╛ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрдЬрд╛рдп SCMP_ERROR_API_USAGE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • SCMP_ERROR_KERNEL_API_USAGE: libseccomp рдЗрдирдкреБрдЯ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдареАрдХ рдерд╛, рд▓реЗрдХрд┐рди рдХрд░реНрдиреЗрд▓ рдХреЛ рдпрд╣ рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ред рдпрд╣ рдХрд░реНрдиреЗрд▓ рдкрд░рд┐рд╡рд░реНрддрди, рдЕрдХреНрд╖рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, libseccomp рдпрд╛ рдХреЙрд▓рд░ рдореЗрдВ рдмрдЧ, рдмрд╣реБрдд рдЕрдЬреАрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдЖрджрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИред рдХреЙрд▓рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрд░рд╡рд╛рдИ рдИрд╡реЗрдВрдЯ рдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ (рдХреЙрд▓рд░ рдФрд░/рдпрд╛ libseccomp) рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдЧреЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдореБрдЦрд░ рдирд╣реАрдВ () рд╕рдХреНрд╖рдоред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдпрдерд╛рд╡рдд рд░рд╣ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╢рд╛рдпрдж @poettering рдпрд╛ @keszybz рднреА рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рддреНрд░реБрдЯрд┐ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдкреАрдЖрдИ рдХреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдЧрд▓рдд рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ ...

рдареАрдХ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХреЗрдВ (рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рд╣рдореЗрдВ рд╕реНрдерд┐рд░ рдФрд░ рд╕рдорд░реНрдерд┐рдд рд░рд┐рдЯрд░реНрди рдХреЛрдб рдкрд░ рд╕рдордЭреМрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣реА рд╣рдо рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдо v2.5 рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд▓рдХреНрд╖реНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЖрдЗрдП v2.5 рдореЗрдВ рд╕реНрдерд┐рд░/рд╕рдорд░реНрдерд┐рдд рд░рд┐рдЯрд░реНрди рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рд╣рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╣рдо рдЗрд╕реЗ v2.6 рдХреЗ рд▓рд┐рдП рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВред

рдИрдЖрдИрдУ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдореИрдВрдиреЗ рдЕрдиреНрдп рдХрд╛рд░реНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдФрд░ рдХреБрдЫ рдХрд░реНрдиреЗрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЦреАрдВрдЪ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЬрдм рдореИрдВ libseccomp рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдИрдЖрдИрдУ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реЛрдЪрдиреЗ рджреЛред

рдХреИрдЪ-рдСрд▓ рдХрд░реНрдиреЗрд▓ рдПрд░рд░ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ ECANCELED рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ @drakenclimber , рдЖрдк рдЗрд╕ рдкрд░ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЪреБрдк рд░рд╣реЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЕрдиреНрдп рдХрд╛рд░реНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдФрд░ рдХреБрдЫ рдХрд░реНрдиреЗрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЦреАрдВрдЪ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЬрдм рдореИрдВ libseccomp рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдИрдЖрдИрдУ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реЛрдЪрдиреЗ рджреЛред

рдореЗрд░рд╛ рднреА рдпрд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЪреАрдЬреЗрдВ рдереЛрдбрд╝реА рд╡реНрдпрд╕реНрдд рд░рд╣реА рд╣реИрдВ: /ред

рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ @drakenclimber , рдЖрдк рдЗрд╕ рдкрд░ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЪреБрдк рд░рд╣реЗ рд╣реИрдВред

рдЬрд╝рд░реВрд░ред рдореИрдВ рдкреВрд░реЗ рдзрд╛рдЧреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдореИрдВ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ред

рдХреИрдЪ-рдСрд▓ рдХрд░реНрдиреЗрд▓ рдПрд░рд░ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ ECANCELED рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдБ рдХрд┐ рдореИрдВ ECANCELED рд╕реЗ рдЕрддреНрдпрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рдерд╛ред рдореИрдВрдиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдПрдХ Google рдЦреЛрдЬ рднреА рдХреАред ECANCELED рдХрд╛ рдкрд┐рдЫрд▓реЗ libseccomp, prctl(), рдпрд╛ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп API рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЯрдХрд░рд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдкрд░ рдЬреЛ рднреА рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ, рд╡рд╣ рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЯреАрдПрд▓; рдбреЙ - рдореИрдВ рдХрд░реНрдиреЗрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдХреИрдЪ-рдСрд▓ рдХреЗ рд░реВрдк рдореЗрдВ ECANCELED рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╣реВрдВред

рдмрд╣реБрдд рдмрд╣реБрдд рд╢реБрдХреНрд░рд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЖрдзрд╛-рдмреЗрдХреНрдб рдкреИрдЪрд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдорд╛рдкреНрдд рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛ред

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

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

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

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

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

erdumbledore picture erdumbledore  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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