рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реА ++ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдЯреИрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛

рдЪрд┐рддреНрд░ 8

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

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ


PVS-Studio Microsoft Visual Studio 2019, 2017, 2015, 2013, 2012 рдФрд░ 2010 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╕рд┐рд╕реНрдЯрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реА, рд╕реА ++, рд╕реА #, рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЖрд▓реЗрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реА ++ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорджрдж рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕реНрдерд╛рдкрдирд╛ рдкреИрдХреЗрдЬ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдПрдХреАрдХрд░рдг рд╡рд┐рдХрд▓реНрдк (рдЪрд┐рддреНрд░ 1) рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рдПрдЧреАред рдЕрдиреБрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪрд┐рддреНрд░рд╛ 1. рдПрдХреАрдХрд░рдг рдШрдЯрдХреЛрдВ рдЪрдпрди рдЦрд┐рдбрд╝рдХреАред

рдЪрд┐рддреНрд░рд╛ 1. рдПрдХреАрдХрд░рдг рдШрдЯрдХреЛрдВ рдЪрдпрди рдЦрд┐рдбрд╝рдХреАред

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

рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ


рдПрдХ рдмрд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╕рдВрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕рдЯреЗрдВрд╢рди тЖТ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ тЖТ рдЪреЗрдХ тЖТ рд╕рдорд╛рдзрд╛рди (рдЪрд┐рддреНрд░ 2) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЪрд┐рддреНрд░рд╛ 2. рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдБрдЪред

рдЪрд┐рддреНрд░рд╛ 2. рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдБрдЪред

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

рдЪреЗрддрд╛рд╡рдиреА рд╕реВрдЪреА рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛


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

рдЪрд┐рддреНрд░рд╛ 3. рдЪреЗрддрд╛рд╡рдиреА рдЦрд┐рдбрд╝рдХреАред рдмрдбрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЪрд┐рддреНрд░рд╛ 3. рдЪреЗрддрд╛рд╡рдиреА рдЦрд┐рдбрд╝рдХреАред рдмрдбрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рд╡рд┐рдВрдбреЛ рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдкреВрд░рд╛ рдЕрд╡рд▓реЛрдХрди рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рдореВрд▓ рд▓реЛрдЧреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ:

  1. рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ред рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдордзреНрдпрдо рдФрд░ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЛ рд╕рдХреНрд╖рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдирд┐рдореНрди рд╕реНрддрд░ "рдХреЛрдб рдЧрдВрдз" рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЭреВрдареЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ рдЗрддрдиреЗ рдХрдо-рдФрд░ рдордзреНрдпрдо-рд╕реНрддрд░ рдХреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЗрддрдиреЗ рдХрдо рдЙрдЪреНрдЪ-рд╕реНрддрд░ рд╡рд╛рд▓реЗ рд╣реИрдВ? рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ MISRA рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ "рдлрдВрдХреНрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдПрдХреНрдЬрд┐рдЯ рдкреЙрдЗрдВрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" рдЬреИрд╕реЗ рдирд┐рдпрдо рд╣реИрдВред рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЗрди рдирд┐рджрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИрдВред рдиреЛрдЯ: " рд╕реА рдФрд░ рд╕реА ++ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рджрд┐рд▓рдЪрд╕реНрдк рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдХреИрд╕реЗ рджреЗрдЦреЗрдВ? "ред
  2. рдлрд╝рд┐рд▓реНрдЯрд░ред рдЖрдк рдХреЛрдб, CWE, рдкрд╛рда, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  3. рдЯреНрд░рд┐рдЧрд░рд┐рдВрдЧ рд▓рд╛рдЗрди рдХреА рд╕рдВрдЦреНрдпрд╛ред рдХреБрдЫ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЗрд╕ рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдореЗрдВ рд▓рд╛рдЗрди рдирдВрдмрд░ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ рджреАрд░реНрдШрд╡реГрддреНрдд рд╣реЛрддрд╛ рд╣реИред

SAST


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

PVS-Studio рдирд┐рдореНрди рдХрдордЬреЛрд░реА рд╡рд░реНрдЧреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:

  1. CWE
  2. рдПрд╕рдИрдЖрдИ рд╕реАрдИрдЖрд░рдЯреА
  3. рдорд┐рд╢реНрд░рд╛

CWE рдХреЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╡рд┐рдВрдбреЛ рдХрд╛ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдЦреЛрд▓реЗрдВ рдФрд░ рдлрд┐рд░ рд╢реЛ рдХреЙрд▓рдо> CWE рдкрд░ рдЯрд┐рдХ рдХрд░реЗрдВ

рдЪрд┐рддреНрд░ 4. рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рд╕реЗ CWE рдХреЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ред

рдЪрд┐рддреНрд░ 4. рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рд╕реЗ CWE рдХреЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреНрд╕> рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ> рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдореЗрдиреНрдпреВ рдмрд╛рд░ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ CWE рдХреЛрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ

рдЪрд┐рддреНрд░ 5. рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдиреВ рдореЗрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдмрдореЗрдиреВред

рдЪрд┐рддреНрд░ 5. рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдиреВ рдореЗрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдмрдореЗрдиреВред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, MISRA рдирд┐рджрд╛рди рд╡рд┐рдХрд▓реНрдк рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ:

рдЪрд┐рддреНрд░рд╛ 6. рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпреЛрдЧреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреАред

рдЪрд┐рддреНрд░рд╛ 6. рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпреЛрдЧреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреАред

рдЖрдк рдпрд╣рд╛рдВ рдЗрди рд╡рд░реНрдЧреАрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛


PVS-Studio_Cmd.exe C ++ .vcxproj рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 'C: \ Program Files (x86) \ PVS-Studio' рд╣реИред

рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдХрдИ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рддреАрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
  • --target: рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╛ рд╕рдорд╛рдзрд╛рди рдХреА рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдПред
  • --output: рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреЛ рд░реЛрдХреЗрдВред
  • --рдкреНрд░рдХреНрд░рд┐рдпрд╛: рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдЧрддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдВред

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдк рдЪреЗрдХ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рджреЗрдЦреЗрдВрдЧреЗ:

рдЪрд┐рддреНрд░рд╛ 7. рдкреАрд╡реАрдПрд╕- Studio_Cmd.exe рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ

рдЪрд┐рддреНрд░рд╛ 7. рдкреАрд╡реАрдПрд╕- Studio_Cmd.exe рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ

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

рд░рд┐рдкреЛрд░реНрдЯ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдиреВ рд╕реЗ рднреА рдЦреЛрд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИ: рдПрдХреНрд╕рдЯреЗрдВрд╢рди> PVS-Studio> Open / Save> Open рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ ...

рдЪрд┐рддреНрд░рд╛ 8. рдкреНрд▓рдЧрдЗрди рдХреЗ рдореЗрдиреВ рд╕реЗ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдЦреЛрд▓рдирд╛ред

рдЪрд┐рддреНрд░рд╛ 8. рдкреНрд▓рдЧрдЗрди рдХреЗ рдореЗрдиреВ рд╕реЗ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдЦреЛрд▓рдирд╛ред

рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред

рдЭреВрдареЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХреЛ рджрдмрд╛рдирд╛


рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ:


рдирдореВрдирд╛ рдЪреЗрддрд╛рд╡рдиреА


рдЖрдЗрдП рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдирд┐рдореНрди рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ ReactOS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

VOID NTAPI AtapiDmaInit(....) { .... ULONG treg = 0x54 + (dev < 3) ? (dev << 1) : 7; .... } 

PVS-Studio рдХрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V502 рд╢рд╛рдпрдж '?:' рдСрдкрд░реЗрдЯрд░ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред '?:' рдСрдкрд░реЗрдЯрд░ рдХреА '+' рдСрдкрд░реЗрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред uniata id_dma.cpp 1610

0x54 + (рджреЗрд╡ <3) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣рдореЗрд╢рд╛ рд╕рдЪ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдЧреА: рдЧреИрд░-рд╢реВрдиреНрдп рд╕реНрдерд┐рд░ 0x54 рдХреЛ рдкрд╣рд▓реЗ (рджреЗрд╡ <3) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпрд╛ рддреЛ 0 рдпрд╛ 1 рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдпред

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрддрд╛ рд╣реИ:

 VOID NTAPI AtapiDmaInit(....) { .... ULONG treg = 0x54 + ((dev < 3) ? (dev << 1) : 7); .... } 

рд╣рдордиреЗ '?:' рдХреЛрд╖реНрдардХ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдм (рджреЗрд╡ <3) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛред

рдирд┐рд╖реНрдХрд░реНрд╖


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

Source: https://habr.com/ru/post/hi461007/


All Articles