
рдЖрдЬ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджрд┐рди рд╣реИ - рдЫрдареЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ 28 рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рд╣рдо рдЕрдкрдиреЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ 7.00 рдХреЛ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдореБрдЦ рдирд╡рд╛рдЪрд╛рд░ рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, 2018 рдХреЗ рджреМрд░рд╛рди рд╣рдордиреЗ C ++, C #, рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдФрд░ рдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╣реБрдП рдкреНрд░рдореБрдЦ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ рд╕реА, рд╕реА ++, рд╕реА #, рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА
рдЬрд╛рдВрдЪ рдХреЗ рджреМрд░рд╛рди рдХреЛрдб рдореЗрдВ рдкрд╛рдИ рдЧрдИ
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ
рд╕рдВрдЧреНрд░рд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╣рдордиреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреЛ 6.x рд╕реЗ 7.x рддрдХ рдмрджрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрд╣ рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕рдорд░реНрдерди рд╣реИ, рдЬрд┐рд╕рдХреА
рддреИрдпрд╛рд░реА рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
рдЬрд╛рд╡рд╛
рдЬрд╛рд╡рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ :) рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рд╣рдо рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЯреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рддрд░реАрдХреЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП:
- рдорд╛рд╡реЗрди рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиред
- рдЧреНрд░реЗрдбрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиред
- IntelliJ рдЖрдИрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиред
рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рд╕реАрдзреЗ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рд╕реНрд░реЛрддреЛрдВ рдФрд░
рдХреНрд▓рд╛рд╕рдкреИрде рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ред
рдЖрдк рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда "
рдХреИрд╕реЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЬрд╛рд╡рд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП " рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕реЛрдирд╛рд░рдХреНрдпреВрдм рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реЗ рджреВрд░ рдирд╣реАрдВ рднрд╛рдЧ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ
рд╕реЛрдирд╛рд░рдХреНрдпреВрдм рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ
рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ред
рд╕реА, рд╕реА ++
2018 рдореЗрдВ, рд╣рдорд╛рд░реА рдЯреАрдо рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ C ++ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рдереАред
рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХрдИ рдирдП рдирд┐рджрд╛рди рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдЬреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдкреЗрдбрд╝ рд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
CWE, CERTC ++ (рдФрд░ C #) рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрдордЬреЛрд░реА рдЧрдгрдирд╛ (
CWE ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реАрдбрдмреНрд▓реНрдпреВрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдпрд╣ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдФрд░ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджреЗрд╢ CERT C рдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХ рдФрд░ CERT C ++ рдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдП рдЧрдП рдереЗред
рдПрд╕рдИрдЖрдИ рд╕реАрдИрдЖрд░рдЯреА рдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП CERT (CERT рд╕рдордиреНрд╡рдп рдХреЗрдВрджреНрд░, CERT / CC) рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд C, C ++, Java рдФрд░ рдкрд░реНрд▓ рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред
рдЗрди рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ C рдФрд░ C ++ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХрд╛ рд╡рд░реНрдЧреАрдХрд░рдг PVS-Studio рдХреЛ рдПрдХ
SAST рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдорд┐рд╢реНрд░рд╛2018 рдореЗрдВ, рдПрдХ PVS-Studio рд╕реНрдЯреИрдЯрд┐рдХ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ MISRA C рдФрд░ MISRA C ++ рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдиреА рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрди рдорд╛рдирдХреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдХрд╛рд░рдг, рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛, рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА, рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдФрд░ рдкрдврд╝реЗрдВ: "
PVS-Studio: MISRA C рдФрд░ MISRA C ++ рдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди ред"
MISRA рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╡рд┐рднрд┐рдиреНрди рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рд╕рдорд░реНрдерди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдПрдВрдмреЗрдбреЗрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ2018 рдореЗрдВ, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдореНрдмреЗрдбреЗрдб рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рд╡рд┐рдВрдбреЛрдЬред рдЖрдИрдПрдЖрд░ рдПрдВрдмреЗрдбреЗрдб рд╡рд░реНрдХрдмреЗрдВрдЪ, рдПрдЖрд░ / рд╕реА рдХреЗ рд▓рд┐рдП рд╕реА / рд╕реА ++ рдХрдВрдкрд╛рдЗрд▓рд░, рд╕реА ++
- рд╡рд┐рдВрдбреЛрдЬ / рд▓рд┐рдирдХреНрд╕ рдХреЗрдПрд▓ ilрд╡рд┐рдЬрд╝рди, рдбреАрдПрд╕-рдПрдордбреАрдХреЗ, рдПрдЖрд░рдПрдо рдХрдВрдкрд╛рдЗрд▓рд░ 5/6 рд╕реА, рд╕реА ++
- рд╡рд┐рдВрдбреЛрдЬ / рд▓рд┐рдирдХреНрд╕ рдЯреЗрдХреНрд╕рд╛рд╕ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреНрд╕ рдХреЛрдб рдХрдореНрдкреЛрдЬрд╝рд░ рд╕реНрдЯреВрдбрд┐рдпреЛ, рдПрдЖрд░рдПрдо рдХреЛрдб рдЬреЗрдирд░реЗрд╢рди рдЯреВрд▓реНрд╕ рд╕реА, рд╕реА ++
- рд╡рд┐рдВрдбреЛрдЬ / рд▓рд┐рдирдХреНрд╕ / рдореИрдХрдУрдПрд╕ред рдЬреАрдПрдирдпреВ рдЖрд░реНрдо рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪрд┐рди, рдЖрд░реНрдо рдПрдВрдмреЗрдбреЗрдб рдЬреАрд╕реАрд╕реА рдХрдВрдкрд╛рдЗрд▓рд░, рд╕реА, рд╕реА ++
рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рджреЛ рдиреЛрдЯ:
- рд╕реНрдЯреЗрдЯрд┐рдХ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ PVS-Studio 6.22 рдЕрдм ARM рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ (Keil, IAR) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред
- PVS-Studio рдЕрдм GNU рдЖрд░реНрдо рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪрд┐рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред
рдХрд╕реНрдЯрдо рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛рдХрднреА-рдХрднреА рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдРрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬреИрд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдореЗрдореНрд╕реНрдХреА ,
рдорд╛рд▓реЙрдХ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдорд╛рдирдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдмрд╕ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдореЗрдВ, рд╣рд╛рд▓ рд╣реА рддрдХ рдРрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЕрдм рдПрдиреЛрдЯреЗрд╢рди
V_FUNC_ALIAS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдо рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЯрд┐рдкреНрдкрдгреА рдкреНрд░рд╛рд░реВрдк:
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрдВрдЬреА - рдЙрдкрдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
- рдлрд╝рдВрдХреНрд╢рди рдХреБрдВрдЬреА - рдЙрдкрдирд╛рдо рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЗрд╕ рдХреБрдВрдЬреА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрдВрдЬреА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред
- рдХреНрд▓рд╛рд╕ рдХреА рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рд╣реИред рдЧрд╛рдпрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рдирд╛рдорд╕реНрдерд╛рди рдХреБрдВрдЬреА рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдирд╛рдо рд╣реИред рдЧрд╛рдпрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:
рдЕрдм рд╡рд┐рд╢реНрд▓реЗрд╖рдХ
MyMemCpy рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЙрд▓ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╣реИрдВрдбрд▓ рдХрд░реЗрдВрдЧреЗ рдЬреИрд╕реЗ
рдореЗрдореЙрдкреА рдХреЗ рдХреЙрд▓ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ V512 рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдЬрд╛рдПрдЧреА:
int buf[] = { 1, 2, 3, 4 }; int out[2]; MyMemCpy (out, buf, 4 * sizeof(int));
C #
рдЗрд╕ рд╕рд╛рд▓ C # рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдереЗред рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдереЗред C # рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ, рд╕рд╛рде рд╣реА C ++ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХреА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдХреЙрдорди рд╡реЗрдХрдиреЗрд╕ рдПрдиреНрдпреВрдорд░реЗрд╢рди (
CWE ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред CWE рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде C # рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреА рдореИрдкрд┐рдВрдЧ
рдпрд╣рд╛рдВ рджреА рдЧрдИ
рд╣реИ (рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЛ 3xxx рдХреЗ рд╕рд╛рде рджреЗрдЦреЗрдВ)ред
рд╣рдо 2019 рдореЗрдВ C # рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдкрд░ рд▓реМрдЯрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдирдП рдирд┐рджрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛-рдлреНрд▓реЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рддрдВрддреНрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рднреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред
рд░рд┐рдкреЛрд░реНрдЯ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕
PlogConverter.exe рдФрд░ plog- рдХрдирд╡рд░реНрдЯрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдХреНрд░рдорд╢рдГ Windows рдФрд░ Linux / macOS рдХреЗ рд▓рд┐рдП PVS-Studio рд╡рд┐рддрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб
GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз
рд╣реИ ред
рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде рд╣рдордиреЗ рд╕реА, рд╕реА ++, рд╕реА # рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдлреБрд▓рдПрдЪрдЯреАрдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк (
рд╡реЗрдм-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП ) рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рд╛
рд╣реИ ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП MISRA рдХреЙрд▓рдо рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
CWE рдЖрдИрдбреА рдХреЗ рд╕рд╛рде-рд╕рд╛рде, MISRA рдХреЙрд▓рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╕рдордп рдХреЛрдб рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рдореАрдХреНрд╖рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд╖рдо рд╣реИред
рд╕реЛрдирд╛рд░рдХреНрдпреВрдм рдкреНрд▓рдЧрдЗрдиреНрд╕
1. рдкреВрд░реНрдг рдЕрджреНрдпрддрдирд╣рдордиреЗ рдирдП API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИред рдЗрд╕рдиреЗ рд╣рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╕реЛрдирд╛рд░рдХреНрдпреВрдм 7 рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдиреНрдпреВрдирддрдо рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЕрдм
рд╕реЛрдирд╛рд░рдХреНрдпреВрдм 6.7 рдПрд▓рдЯреАрдПрд╕ рд╣реИ ред
2. рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛрдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИред рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдиреНрдп рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
3. MISRA рдорд╛рдирдХрд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ MISRA C рдФрд░ MISRA C ++ рдорд╛рдирдХреЛрдВ рдХреЗ
рд╕рдорд░реНрдерди рдХреА рдШреЛрд╖рдгрд╛ рдХреА рд╣реИред рдирдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ (CWE рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд):
sonar.pvs-studio.misra=active
рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд▓рд┐рдП MISRA рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ:
рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЯреИрдЧ
рдорд┐рд╢реНрд░рд╛ рдФрд░
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ # рдорд┐рд╢реНрд░рд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред рдорд┐рд▓реАрд╕рд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рднреА рдЬреЛрдбрд╝реА рдЧрдИ рдереА, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
4. рдирдП рдореЗрдЯреНрд░рд┐рдХреНрд╕рдореЗрдиреВ
рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ -> рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ -> рдЙрдкрд╛рдп, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдб рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдмреАрдЪ рдЕрдм рдкреАрд╡реА-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рдирдХрд╛рд░реА рд╣реИ:
рдкреНрд░рддреНрдпреЗрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЪрд╛рд░реНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдореВрд╣реЛрдВ рдХреА рдШрдЯрдирд╛ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
4. рдмрд╣реБрдкрд░рдд рд╕рдВрдХреНрд░рдордгрдХреБрдЫ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЛрдб рдХреА рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рд╡реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВред рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдордиреЗ рдорд▓реНрдЯреАрд▓рд╛рдЗрди рдмрджрд▓рд╛рд╡ рдЬреЛрдбрд╝реЗ:
рд╕реЛрдирд╛рд░рдХреНрдпреВрдм рднреА рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ рд╣рдо рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдРрд╕реЗ рдмрджрд▓рд╛рд╡ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрдВрддрд░-рдХреЛрд╢рд┐рдХреАрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реЛред
6. рдкреНрд░рд▓реЗрдЦрдирдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдЖрдП рд╣реИрдВред рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рдмрд╣реБрднрд╛рд╖реА рдЙрддреНрдкрд╛рдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
SAST
рд╣рд╛рд▓ рддрдХ рддрдХ, рд╣рдорд╛рд░реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╣рдордиреЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рд╣реИред рдЬрдмрдХрд┐ рд╣рдордиреЗ рд▓рдЧрднрдЧ рдХрднреА рднреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрд╖ рд╣рдордиреЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реБрдзрд╛рд░ рд▓рд┐рдпрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рджреЗрд╡рд╕реЗрдХрд╛рдкреНрд╕ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдХрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ред
PVS-Studio рдПрдХ рд╕реНрдереИрддрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг (SAST) рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рди рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкреЛрд╕, рдбреЗрдб рдХреЛрдб рдФрд░ рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рднреА рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред
рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдПрдХ рдПрд╕рдПрдПрд╕рдЯреА рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕рд╛рдорд╛рдиреНрдп рдХрдордЬреЛрд░реА рдЧрдгрдирд╛ ,
рдПрд╕рдИрдЖрдИ рд╕реАрдИрдЖрд░рдЯреА рдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХ ред рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рдЯреЗрдмрд▓ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдирдХреЛрдВ рдкрд░ рдореИрдк рдХрд░рдирд╛:
- рд╕реАрдбрдмреНрд▓реНрдпреВрдИ рдореИрдкрд┐рдВрдЧ
- рдПрд╕рдИрдЖрдИ рдкреНрд░рдорд╛рдгрд┐рдд рдорд╛рдирдЪрд┐рддреНрд░рдг
рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ "
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЗрди рдПрд╕рдПрдПрд╕рдЯреА рд╕реЙрд▓реНрдпреВрд╢рди " рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╣рдо рдЗрди рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рднреА рджреЗрддреЗ рд╣реИрдВ:
- рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
- рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддреЗ рд╕рдордп рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреИрд░ рдореЗрдВ рдЧреЛрд▓реА рдорд╛рд░ рд▓реЗрдВ ред
- PVS-Studio рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЛ рд╕реМрдВрдкрдирд╛ ред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдлреНрд░реА
рдирдП 2019 рдХреА рдкреВрд░реНрд╡ рд╕рдВрдзреНрдпрд╛ рдкрд░, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рдиреЗ рдЧрд┐рдЯрд╣рдм рдпрд╛ рдмрд┐рдЯрдмрдХреЗрдЯ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрд╣рд╛рд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЙрдиреНрд╣реЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдЯреИрдЯрд┐рдХ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХрд╛ рдореБрдлреНрдд рдЙрдкрдпреЛрдЧ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд┐рд╡рд░рдг: "
рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ "ред
MacOS
2018 рдореЗрдВ, PVS-Studio рдиреЗ macOS рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╣рдорд╛рд░реА рдЯреАрдо рдиреЗ XNU рдХрд░реНрдиреЗрд▓ рдЪреЗрдХ рдХреЛ рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: "
PVS-Studio рдЕрдм macOS рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ: Apple рдХреЗ XNU рдХрд░реНрдиреЗрд▓ рдореЗрдВ 64 рдХрдордЬреЛрд░рд┐рдпрд╛рдБ "ред
XNU Apple рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо OS X рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (macOS, iOS, TVOS, рдШрдбрд╝реА) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред