
рдПрдВрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рд▓рдВрдмреЗ рдФрд░ рдордЬрдмреВрддреА рд╕реЗ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред рдЙрдирдХреА рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВ, рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реБрдзрд╛рд░ рдорд╣рдВрдЧрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдореНрдмреЗрдбреЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рд▓реЗрдЦ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдЬреАрдПрдирдпреВ рдЖрд░реНрдо рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪреИрди рдХреЗ рд╕рдорд░реНрдерди рдФрд░ рдореИрдмрдб рдУрдПрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд╛рдП рдЧрдП рдХреЛрдб рджреЛрд╖реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдЧрд╛ред
рдкрд░рд┐рдЪрдп
PVS-Studio рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд╕рдВрдХрд▓рдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЕрдм рдПрдХ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ - рдЬреАрдПрдирдпреВ рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪрд┐рдиред
рдЬреАрдПрдирдпреВ рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪреЗрди рдЬреАрдПрдирдпреВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд░реНрдо рд╕реЗ рд╕рдВрдХрд▓рдХ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдкрд╣рд▓реА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ 2012 рдореЗрдВ рд╣реБрдИ рдереА, рдФрд░ рддрдм рд╕реЗ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреАрд╕реАрд╕реА рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИред
рдЬреАрдПрдирдпреВ рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪреЗрди рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдирдВрдЧреЗ рдзрд╛рддреБ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдзреЗ рдЗрдВрдЯрд░рд▓реЗрдпрд░ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ред рдкреИрдХреЗрдЬ рдореЗрдВ C рдФрд░ C ++, рдХреЛрдбрд╛рдВрддрд░рдХ, GNU
рдмрд┐рдиреБрдЯрд┐рд▓реНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдФрд░
рдиреНрдпреВрд▓рд┐рдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП
рдХрдВрдкрд╛рдЗрд▓рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ред рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд▓рд╛ рд╣реИ рдФрд░ рдЬреАрдПрдирдпреВ рдЬреАрдкреАрдПрд▓ рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Mbed OS
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЕрдзрд┐рдХ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд╣рдо рдкреНрд░рд╛рдердорд┐рдХ рд░реВрдк рд╕реЗ IoT рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдПрдореНрдмреЗрдбреЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХреА рдЧрдИ рдереА, рдЬрд┐рд╕рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЦреБрд▓реЗ рд╣реИрдВред рдЖрдЧреЗ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдпрджреНрдпрдкрд┐ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп GNU рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдХрд┐рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рд▓реЗрдЦреЛрдВ рдХреЗ рдкрд╛рдардХ рд╢рд╛рдпрдж рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╡рд░реНрдгрди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЙрдирдХреА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдзреЛрдЦрд╛ рди рджреЗрдВ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдУрдПрд╕ рдУрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЪрд▓рд╛рдПрдВред рдпрд╣ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬрд┐рд╕реЗ рдЖрд░реНрдо рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ:
https://www.mbed.com/рд╕реНрд░реЛрдд рдХреЛрдб:
https://github.com/ARMmbed/mbed-osMbed OS рдкрд░ рд╡рд┐рдХрд▓реНрдк рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рдирд╣реАрдВ рдЧрд┐рд░рд╛, рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ:
рдЖрд░реНрдо рдореАрдб рдУрдПрд╕ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдПрдореНрдмреЗрдбреЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдСрдл рдерд┐рдВрдЧреНрд╕ рдореЗрдВ "рдЪреАрдЬреЛрдВ" рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдЖрд░реНрдо рдХреЙрд░реНрдЯреЗрдХреНрд╕-рдПрдо рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЙрддреНрдкрд╛рдж рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛, рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА, рдПрдХ рдЖрд░рдЯреАрдУрдПрд╕ рдФрд░ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рдЖрдИ / рдУ рдбрд┐рд╡рд╛рдЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдпрд╣ рдЬреАрдПрдирдпреВ рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪреИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЖрджрд░реНрд╢ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЖрд░реНрдо рдХреА рднрд╛рдЧреАрджрд╛рд░реАред рдореИрдВ рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рд╣реИред
рддреНрд░реБрдЯрд┐рдпреЛрдВ
Mbed OS рдХреЛрдб рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди, PVS-Studio рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ 693 рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рджреАрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 86 рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдереАрдВред рдореИрдВ рдЙрди рд╕рднреА рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рджреЛрд╣рд░рд╛рдП рдЧрдП рд╣реИрдВ рдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реБрдЪрд┐ рдХреЗ рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рд╕рдорд╛рди рдХреЛрдб рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрд╣реБрдд рд╕реА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ
V547 (рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣рдореЗрд╢рд╛ рд╕рд╣реА / рдЧрд▓рдд рд╣реИ)
рдЙрддреНрдкрдиреНрди рдХреА ред рдЧрд▓рдд рдФрд░ рдирд┐рд░реНрдмрд╛рдз рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╕рдордп рдпрд╣ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреЛ рд▓реЛрдЧ рдЗрдЪреНрдЫрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг "
рдкреАрдПрдлрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдИрдПрдлрдПрд▓ рдХреЛрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдЙрджрд╛рд╣рд░рдг, 10-15% рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ " рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ред
рд╕реНрдореГрддрд┐ рд▓реАрдХ
рдЪрд▓реЛ рд╕реА рдФрд░ рд╕реА ++ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдореЗрдореЛрд░реА рд▓реАрдХред
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА:
V773 CWE-401 рд╕рдорд╛рд░реЛрд╣ 'read_buf' рдкреЙрдЗрдВрдЯрд░ рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╕рдВрднрд╡ рд╣реИред cfstore_test.c 565
int32_t cfstore_test_init_1(void) { .... read_buf = (char*) malloc(max_len); if(read_buf == NULL) { CFSTORE_ERRLOG(....); return ret; } .... while(node->key_name != NULL) { .... ret = drv->Create(....); if(ret < ARM_DRIVER_OK){ CFSTORE_ERRLOG(....); return ret;
рдЧрддрд┐рд╢реАрд▓ рд╕реНрдореГрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реНрдерд┐рддрд┐ред
рдореЙрд▓реЛрдХ- рдЖрд╡рдВрдЯрд┐рдд рдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдЬрд▓реНрджреА рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рддреЛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдорд╛рди рдХреЛрдб рдиреЛрдЯ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд▓реЗрдЦрдХ рдиреЗ рд╢реАрд░реНрд╖ рдЯреБрдХрдбрд╝реЗ рдХреА рдирдХрд▓ рдХреА рдФрд░ рдПрдХ
рдореБрдлреНрдд рдХреЙрд▓ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдпрд╛ред
рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдгред
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА:
V773 CWE-401 рд╕рдорд╛рд░реЛрд╣ 'рдЗрдВрдЯрд░рдлрд╝реЗрд╕' рдкреЙрдЗрдВрдЯрд░ рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╕рдВрднрд╡ рд╣реИред nanostackemacinterface.cpp 204
nsapi_error_t Nanostack::add_ethernet_interface( EMAC &emac, bool default_if, Nanostack::EthernetInterface **interface_out, const uint8_t *mac_addr) { .... Nanostack::EthernetInterface *interface; interface = new (nothrow) Nanostack::EthernetInterface(*single_phy); if (!interface) { return NSAPI_ERROR_NO_MEMORY; } nsapi_error_t err = interface->initialize(); if (err) { return err;
рдЖрдмрдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░
рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХреЙрд▓ рд╕рдлрд▓ рд░рд╣рд╛, рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рд░рд┐рд╕рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдерд╛рдиреАрдп
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЪрд░ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЙрдЗрдВрдЯрд░ рдмрд╕ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ, рдХрд┐рд╕реА рдХреЛ
рдбрд┐рд▓реАрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкрддреЗ рдХреЛ рдмрд╛рд╣рд░ рдХреА рддрд░рдл рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦ рд╕рдХреЗред
Memset
рдореЗрдорд╕реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдЦ "
рд╕реА / рд╕реА ++ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЦрддрд░рдирд╛рдХ рдлрд╝рдВрдХреНрд╢рди " рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
V575 CWE-628 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди '0' рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред рддреАрд╕рд░реЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред mbed_error.c 282
mbed_error_status_t mbed_clear_all_errors(void) { ....
рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ
last_error_ctx рд╕рдВрд░рдЪрдирд╛ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреЛ рдорд┐рд▓рд╛рдпрд╛ред рдирддреАрдЬрддрди,
0 рдмрд╛рдЗрдЯреНрд╕
рдЖрдХрд╛рд░ рдЖрдХрд╛рд░ (mbed_error_ctx) рд╕реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВред
рдареАрдХ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рд╕реМ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдКрдкрд░ рдореМрдЬреВрдж рд╣реИ:
V575 CWE-628 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди '0' рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред рддреАрд╕рд░реЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред mbed_error.c 123
рдмрд┐рдирд╛ рд▓реВрдк рдореЗрдВ рдмрд┐рдирд╛ рд╢рд░реНрдд 'рд░рд┐рдЯрд░реНрди тАЩрд╕реНрдЯреЗрдЯрдореЗрдВрдЯ
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА: рдПрдХ рдкрд╛рд╢ рдХреЗ рднреАрддрд░
V612 CWE-670 рдПрдХ рдмрд┐рдирд╛ рд╢рд░реНрдд 'рд╡рд╛рдкрд╕реА'ред thread_network_data_storage.c 2348
bool thread_nd_service_anycast_address_mapping_from_network_data ( thread_network_data_cache_entry_t *networkDataList, uint16_t *rlocAddress, uint8_t S_id) { ns_list_foreach(thread_network_data_service_cache_entry_t, curService, &networkDataList->service_list) {
рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ,
ns_list_foreach рд╡рд╣ рдореИрдХреНрд░реЛ рд╣реИ рдЬреЛ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ
рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рдЙрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж
рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрдВрдХреНрддрд┐рдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдХреЛрдб рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ,
rlocAddress рдЖрд░рдВрднреАрдХрд░рдг рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рд╣рд╛рд▓рдд рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЖрдк рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╢рд░реНрддреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ
рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рд╡реА
547 рдЪреЗрддрд╛рд╡рдиреА рдХреА
рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛
рдЙрддреНрдкрдиреНрди рдХреА , рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдФрд░ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рджреЛ рдорд╛рдорд▓реЗ рд▓рд┐рдЦреЗред
V547 CWE-570 рдПрдХреНрд╕рдкреНрд░реЗрд╢рди 'pcb-> state == LISTEN' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред lwip_tcp.c 689
enum tcp_state { CLOSED = 0, LISTEN = 1, .... }; struct tcp_pcb * tcp_listen_with_backlog_and_err(struct tcp_pcb *pcb, u8_t backlog, err_t *err) { .... LWIP_ERROR("tcp_listen: pcb already connected", pcb->state == CLOSED, res = ERR_CLSD; goto done); if (pcb->state == LISTEN) {
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╕реНрдерд┐рддрд┐
рдкреАрд╕реАрдмреА-> рд░рд╛рдЬреНрдп == рд▓рд┐рд╕реНрдЯреЗрди рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИ, рдЖрдЗрдП
рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпреЛрдВред
рдпрджрд┐ рдХрдерди рд╕реЗ рдкрд╣рд▓реЗ,
LWIP_ERROR рдореИрдХреНрд░реЛ рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬреЛ рдСрдкрд░реЗрд╢рди рдХреЗ рдЕрдкрдиреЗ рддрд░реНрдХ рд╕реЗ,
рдореБрдЦрд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛
рд╣реИ ред рдЙрдирдХрд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \ LWIP_PLATFORM_ERROR(message); handler;}} while(0)
рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдЭреВрдареА рд╣реИ, рддреЛ рдореИрдХреНрд░реЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░
рд╣реИрдВрдбрд▓рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ
рдЧреЛрдЯреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреВрдж рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕реНрдерд┐рддрд┐ 'рдкреАрд╕реАрдмреА-> рд░рд╛рдЬреНрдп == рдмрдВрдж' рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ,
рдЕрд░реНрдерд╛рддреН ,
рдХрд┐рдП рдЧрдП рд▓реЗрдмрд▓ рдкрд░ рд╕рдВрдХреНрд░рдордг рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм
рдкреАрд╕реАрдмреА-> рд░рд╛рдЬреНрдп рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ LWIP_ERROR рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ ,
LISTEN рдХреЗ рд▓рд┐рдП
pcb-> рд╕реНрдЯреЗрдЯ рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд░реНрдд рдХрднреА рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд▓рд╛рдЗрди рдкрд░
рд╕реНрдЯреЗрдЯ рдореЗрдВ рдХреЗрд╡рд▓
CLOSED рд╡реИрд▓реНрдпреВ рд╣реЛ рд╕рдХрддреА рд╣реИред
рд╢рд░реНрддреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
V517 CWE-570 'if (A) {...} рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЧрд░ (A) {...}' рдкреИрдЯрд░реНрди рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 62, 65. libdhcpv6_server.c 62
static void libdhcpv6_address_generate(....) { .... if (entry->linkType == DHCPV6_DUID_HARDWARE_EUI64_TYPE)
рдпрд╣рд╛рдБ,
рдпрджрд┐ рдФрд░
рдпрджрд┐ рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╢рд░реАрд░ рдореЗрдВ рдХреЛрдб рдХреЛ рдХрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрдХреНрд╕рд░ рд╣реЛрддреА рд╣реИрдВред
рдЦреБрдж рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
рдЖрдЗрдП рдПрдХ рдордЬреЗрджрд╛рд░ рдХреЛрдб рдХреЛрдб рджреЗрдЦреЗрдВред
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА:
V607 рдорд╛рд▓рд┐рдХ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдФрд░ search_response_tlv'ред thread_discovery.c 562
static int thread_discovery_response_send( thread_discovery_class_t *class, thread_discovery_response_msg_t *msg_buffers) { .... thread_extension_discover_response_tlv_write( &discover_response_tlv, class->version, linkConfiguration->securityPolicy); .... }
рдЕрдм рдЖрдЗрдП рдореИрдХреНрд░реЛ
рдШреЛрд╖рдгрд╛рдкрддреНрд░ рдереНрд░реЗрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ
рд╣реИрдВ_рд╕реНрдЯреЗрдВрд╢рди_рдбрд┐рд╕реНрдХрд╡рд░_рдкреНрд░реЛрд╕реЗрд╕_tlv_write :
#define thread_extension_discover_response_tlv_write \ ( data, version, extension_bit)\ (data)
рдореИрдХреНрд░реЛ рдХреЛ рдбреЗрдЯрд╛ рддрд░реНрдХ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдмрд╛рдж
рдереНрд░реЗрдб_рдбрд┐рд╕реНрдХреЛрд╡рд░реА_рдкреНрд░рддрд┐рд╕рд╛рдж_рд╕реЗрдВрдб рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдЗрд╕рдХреА рдХреЙрд▓ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
(рдФрд░ search_response_tlv ) рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред
рдореЗрд░реА рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рдХреЛрдИ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдХреЛрдб рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдЪрд┐рддреНрд░ рдореЗрдВ рдЫрд╡рд┐ рдХреЗ рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ :)ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ GNU рдЖрд░реНрдо рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдХрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдбреЗрдореЛ
рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб
рдХрд░реЗрдВ ред
рдирд┐: рд╢реБрд▓реНрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╡рд┐рдХрд▓реНрдк рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рдХреБрдЫ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдпреВрд░реА рдорд┐рдирд╛рдПрд╡ред
PVS-Studio рдЕрдм GNU рдЖрд░реНрдо рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪрд┐рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред