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

рд╕рдмрд╕реЗ рдкреЗрдЪреАрджрд╛ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдЯреИрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рдХреЛрдб рдореЗрдВ рдмрдЧ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИрдВ, рддреЛ рдЖрдк рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЫрд╛рддреНрд░реЛрдВ рдФрд░ рдЙрддреНрд╕рд╛рд╣реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП
рдореБрдлреНрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ
рд╣реИрдВ , рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП
рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ , рдФрд░ рд╕рднреА рджреБрдирд┐рдпрд╛ рдФрд░ рдЙрдирдХреЗ рдХреБрддреНрддреЗ рдХреЗ рд▓рд┐рдП
рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рднреАред рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рд╕рд╛рд▓ рддрдХ рдЖрдк рдЕрдкрдирд╛ рд╢реАрд░реНрд╖ 10 рдмрдирд╛ рдкрд╛рдПрдВрдЧреЗ? :)
рдиреЛрдЯ: рдореИрдВ рдЖрдкрдХреЛ рдЦреБрдж рдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рджреЗрдЦреЗрдВ, рдЕрдкрдиреЗ рдЖрдк рдХреЛ рджреЛрд╖реЛрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЖрдк рдХрд┐рддрдиреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ?
рджрд╕рд╡рд╛рдБ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рдЗрдирдЯреВ рд╕реНрдкреЗрд╕ рдЕрдЧреЗрди: рдпреВрдирд┐рдХреЙрд░реНрди рд╡рд┐рдЬрд┐рдЯреЗрдб рд╕реНрдЯреЗрд▓рд╛рд░рд┐рдпрдорд╕реНрдЯреЗрд▓реЗрд░рд┐рдпрдо рдирд╛рдордХ рдЖрднрд╛рд╕реА рддрд╛рд░рд╛рдордВрдбрд▓ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛ред
рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдЯреБрдХрдбрд╝рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЫреЛрдЯрд╛ рд╣реИ, рдПрдХ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рддреНрд░реБрдЯрд┐ рд╕реЗ рднрд░рд╛ рд╣реИ:
Plane::Plane(Vec3f &v1, Vec3f &v2, Vec3f &v3) : distance(0.0f), sDistance(0.0f) { Plane(v1, v2, v3, SPolygon::CCW); }
рдорд┐рд▓ рдЧрдпрд╛?
PVS-Studio рдЪреЗрддрд╛рд╡рдиреА :
V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдкреНрд▓реЗрди :: рдкреНрд▓реЗрди (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рдорд╛рдиред 29 29
рдХреЛрдб рд▓реЗрдЦрдХ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреБрдЫ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдлрд╝реАрд▓реНрдб рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реИ, рдПрдХ рдЕрдиреНрдп рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЦреНрдп рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдбред рдЦреИрд░, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рд╣ рдХреЗрд╡рд▓ рдЕрдкрдирд╛ рджрд╛рдпрд░рд╛ рдЫреЛрдбрд╝рддреЗ рд╕рдордп рдирд╖реНрдЯ рдХреА рдЧрдИ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдЕрд╕рд┐рдВрдЪрд┐рдд рд░рд╣ рдЬрд╛рдПрдВрдЧреЗред
рд▓реЗрдЦрдХ рдХреЛ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЙрд▓ рдХреЗ рдмрдЬрд╛рдп, C ++ 11 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦ рд╕рдХрддрд╛ рдерд╛:
Plane::Plane(Vec3f& v1, Vec3f& v2, Vec3f& v3) : Plane(v1, v2, v3, SPolygon::CCW) { distance = 0.0f; sDistance = 0.0f; }
рдЗрд╕ рддрд░рд╣, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдпрд╣ рдЕрджреНрднреБрдд рдирд╣реАрдВ рд╣реИ?
рдиреМрд╡рд╛рдБ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рдкрд░реНрд▓ 5: рдореИрдХреНрд░реЛрдЬрд╝ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЫрд┐рдкрд╛рдПрдВрдПрдХ рдмрд╣реБрдд рд╣реА рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдореИрдХреНрд░реЛ рдЕрдкрдиреА рд╕реБрдВрджрд░рддрд╛ рдореЗрдВ рдиреМрд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рдЦрдбрд╝рд╛ рд╣реИред
рдЬрдм рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛, рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА Svyatoslav рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рднрд░ рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ рдореИрдХреНрд░реЛ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:
PP(pp_match) { .... MgBYTEPOS_set(mg, TARG, truebase, RXp_OFFS(prog)[0].end); .... }
рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рдерд╛, Svyatoslav рдиреЗ рдЧрд╣рд░рд╛ рдЦреЛрджрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдореИрдХреНрд░реЛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЦреЛрд▓рд╛ рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рдореИрдХреНрд░реЛрдЬрд╝ рдереЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдиреЗ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЛ рднреА рдиреЗрд╕реНрдЯреЗрдб рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЙрд╕реЗ рдПрдХ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ, рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХреАред рдХреЛрдб рдХреА рдкрд┐рдЫрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ Svyatoslav:
(((targ)->sv_flags & 0x00000400) && (!((targ)->sv_flags & 0x00200000) || S_sv_only_taint_gmagic(targ)) ? (mg)->mg_len = ((prog->offs)[0].end), (mg)->mg_flags |= 0x40 : ((mg)->mg_len = (((targ)->sv_flags & 0x20000000) && !__builtin_expect(((((PL_curcop)->cop_hints + 0) & 0x00000008) ? (_Bool)1 :(_Bool)0),(0))) ? (ssize_t)Perl_utf8_length( (U8 *)(truebase), (U8 *)(truebase)+((prog->offs)[0].end)) : (ssize_t)((prog->offs)[0].end), (mg)->mg_flags &= ~0x40));
PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА :
V502 рд╢рд╛рдпрдж '?:' рдСрдкрд░реЗрдЯрд░ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред '?:' рдСрдкрд░реЗрдЯрд░ рдХреА 'рдФрд░&' рдСрдкрд░реЗрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред pp_hot.c 3036
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реЛрдЧрд╛ред рд╣рдо рдЗрд╕ рдХреЛрдб рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдирд┐рд╡рд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣реЗрдВ рддреЛ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИред рд╡реИрд╕реЗ рднреА, рдпрд╣ рдЦрд░рд╛рдм рдкрдардиреАрдп рдХреЛрдб рдХрд╛ рдХрд╛рдлреА рдордиреЛрд░рдВрдЬрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдХреНрд░реЛрдВ рджреБрд╖реНрдЯ рд╣реИрдВред рдЬрд╝рд░реВрд░, рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ, рдЬрдм рдореИрдХреНрд░реЛрдЬрд╝ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдПрдХ рдореИрдХреНрд░реЛ рдХреЛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ - рддреЛ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдиреЗрд╕реНрдЯреЗрдб рдореИрдХреНрд░реЛрдЬрд╝ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВред рди рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рд▓рд┐рдП рднреА рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореИрдХреНрд░реЛ рдореЗрдВ рдЧрд▓рддреА рдХрд░рддрд╛ рд╣реИ - рддреЛ рдЗрд╕реЗ рдореИрдХреНрд░реЛ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдвреВрдВрдврдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛ред
рдЖрдард╡рд╛рдБ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рдХреНрд░реЛрдорд┐рдпрдо: рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВрдЕрдЧрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдХреНрд░реЛрдорд┐рдпрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреНрд░реБрдЯрд┐ WebRTC рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЫрд┐рдкреА рд╣реБрдИ рдереАред
std::vector<SdpVideoFormat> StereoDecoderFactory::GetSupportedFormats() const { std::vector<SdpVideoFormat> formats = ....; for (const auto& format : formats) { if (cricket::CodecNamesEq(....)) { .... formats.push_back(stereo_format); } } return formats; }
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: container рдлреЙрд░реНрдореЗрдЯреНрд╕ тАЩрдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП
V789 CWE-672 Iterators, рд▓реВрдк рдХреЗ рд▓рд┐рдП рд░реЗрдВрдЬ-рдЖрдзрд╛рд░рд┐рдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ 'рдкреБрд╢_рдмреИрдХ' рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЙрд▓ рдкрд░ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред stereocodecfactory.cc 89
рддреНрд░реБрдЯрд┐ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ рд▓реВрдк рдХреЗ рд▓рд┐рдП рд░реЗрдВрдЬ-рдЖрдзрд╛рд░рд┐рдд рдХреЗ рднреАрддрд░ рдмрджрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИред рд░реЗрдВрдЬ-рдЖрдзрд╛рд░рд┐рдд рд▓реВрдк рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рдХрдВрдЯреЗрдирд░ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдЗрди рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рддреНрд░реБрдЯрд┐ рдмрдиреА рд░рд╣рддреА рд╣реИ, рдпрджрд┐ рд▓реВрдк рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕реНрдкрд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ:
for (auto format = begin(formats), __end = end(formats); format != __end; ++format) { if (cricket::CodecNamesEq(....)) { .... formats.push_back(stereo_format); } }
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдкреБрд╢_рдмреИрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рд╡реЗрдХреНрдЯрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ - рдЗрд╕ рддрд░рд╣, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпрд╛рдБ рдПрдХ рдЕрдорд╛рдиреНрдп рдореЗрдореЛрд░реА рд╕реНрдерд╛рди рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВрдЧреАред
рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ: рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдмрдВрдзреА рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЖрдХрд╛рд░ рдХрднреА рди рдмрджрд▓реЗрдВред рдпрд╣ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд░реЗрдВрдЬ-рдЖрдзрд╛рд░рд┐рдд рд▓реВрдк рдФрд░ рд▓реВрдк рд╕реЗ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред StackOverflow рдкрд░ рдЗрд╕
рдЪрд░реНрдЪрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрдорд╛рдиреНрдпрдХрд░рдг рдХреЗ рдХрд╛рд░рдг рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рд╛рддрд╡рд╛рдБ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рдЧреЛрдбреЛрдЯ: рд╕реНрдЯреЗрдЯрд┐рдХ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдХреЗ рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рдкрд░рдЧреЗрдо рдЗрдВрдбрд╕реНрдЯреНрд░реА рд╕реЗ рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реЛрдЧрд╛ рдЬреЛ рд╣рдордиреЗ рдЧреЛрдбреЛрдЯ рдЧреЗрдо рдЗрдВрдЬрди рдореЗрдВ рдкрд╛рдпрд╛ рдерд╛ред рд╕рдВрднрд╡рддрдГ, рддреНрд░реБрдЯрд┐ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдХрд╛рдо рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдардХ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред
void AnimationNodeBlendSpace1D::add_blend_point( const Ref<AnimationRootNode> &p_node, float p_position, int p_at_index) { ERR_FAIL_COND(blend_points_used >= MAX_BLEND_POINTS); ERR_FAIL_COND(p_node.is_null()); ERR_FAIL_COND(p_at_index < -1 || p_at_index > blend_points_used); if (p_at_index == -1 || p_at_index == blend_points_used) { p_at_index = blend_points_used; } else { for (int i = blend_points_used - 1; i > p_at_index; i++) { blend_points[i] = blend_points[i - 1]; } } .... }
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: V621 CWE-835 'рдСрдкрд░реЗрдЯрд░' рдХреЗ рд▓рд┐рдП рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд▓реВрдк рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдиреАрдореЗрд╢рди_рдмреНрд▓реЗрдВрдб_рд╕реНрдкреЗрд╕_1 рдбреАред рд╕реАред рдкреАред 113
рдЪрд▓реЛ рд▓реВрдк рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд░ рдбрд╛рд▓реЗрдВред рдХрд╛рдЙрдВрдЯрд░ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЖрд░рдВрдн рдореВрд▓реНрдп
рдорд┐рд╢реНрд░рдг_ рдкреЙрдЗрдВрдЯреНрд╕_рдпреВрдЬрд╝ -1 рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджреЛ рдкрд┐рдЫрд▓реЗ рдЪреЗрдХ (
ERR_FAIL_COND рдФрд░
рдЕрдЧрд░ рдореЗрдВ ) рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐
рдорд┐рд╢реНрд░рдг_ рдкреЙрдЗрдВрдЯ_рдпреВрд╕реНрдб рд▓реВрдк рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдХреНрд╖рдг рддрдХ,
рдорд┐рд╢реНрд░рдг_ рдкреЙрдЗрдВрдЯреНрд╕_рдпреВрдПрд╕ рд╣рдореЗрд╢рд╛
p_at_index рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╛ рддреЛ рд▓реВрдк рдХреА рд╕реНрдерд┐рддрд┐ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд╣реЛрддреА рд╣реИ рдпрд╛ рд▓реВрдк рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЕрдЧрд░
рдмреНрд▓реЗрдВрдб_ рдкреЙрдЗрдВрдЯреНрд╕_рдбреНрдпреВрд╕ - 1 == p_at_index , рддреЛ рд▓реВрдк рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЪреЗрдХ
i> p_at_index рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд░рд╣реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐
рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рд▓реВрдк рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдХрд╛рдЙрдВрдЯрд░ рдЬрд╛рддрд╛ рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реВрдк рд╢рд╛рд╢реНрд╡рдд рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
рдЖрдИ рд╡реЗрд░рд┐рдПрдмрд▓ (рдЬреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ) рдХрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ, рд╣рдореЗрдВ рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐
рдореИрдВ int рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдерд╛, рддреЛ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдСрдкрд░реЗрдЯрд░
i ++ рдЗрд╕реЗ
0 рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ "рдЕрдирд╕рд╛рдЗрдирдб рд░реИрдкрд┐рдВрдЧ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА
рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ ред
рдпрд╣ рдкрд╣рд▓рд╛ рдмрд┐рдВрджреБ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рджреВрд╕рд░рд╛ рд╣реИ! рдорд╛рдорд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рддрдХ рднреА рдирд╣реАрдВ рдкрд╣реБрдБрдЪреЗрдВрдЧреЗред рдПрд░реЗ рдЗрдВрдбреЗрдХреНрд╕ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╕реЗ рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ, рдХрд┐ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рд╣рд░ рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╣реЛрдЧрд╛ред рдЬреЛ рдХрд┐ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рд╣реИред рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрджрд╛рд╣рд░рдг :)
рдореИрдВ рдЖрдкрдХреЛ рдРрд╕реА рд╣реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ:
- рд╕рд░рд▓ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рд▓рд┐рдЦреЗрдВ
- рдЕрдзрд┐рдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдирдП рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВ
- рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)
рдЫрдард╛ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рдЕрдореЗрдЬрди рд▓рдореНрдмрд░рдмрд╛рд░реНрдб: рдП рд╕реНрдХреНрд░реАрдо рдСрдл рдПрдВрдЧреБрдЗрд╢рдпрд╣рд╛рдБ gamedev рдЙрджреНрдпреЛрдЧ рд╕реЗ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕реНрд░реЛрдд рдЕрдореЗрдЬрд╝рди рд▓рдореНрдмрд░рдмрд╛рд░реНрдб рдХреЗ AAA- рдЗрдВрдЬрди рд╕реЗ рд╣реИред
void TranslateVariableNameByOperandType(....) {
PVS-Studio рдЪреЗрддрд╛рд╡рдиреА :
V523 '' 'рдХрдерди' рдФрд░ 'рдХрдерди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред toglsloperand.c 700
Amazon Lumberyard рдХреЛ рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдбреЗрд╡рд▓рдкрд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдХрд▓рдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрдЧреЛрд░ рдХреНрд╡рд╛рд▓рдХреЙрдо рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЖрдпрд╛ рдерд╛ред
рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ "рдкреИрд░рд╛рдиреЙрдпрдб" рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЗрдХ рдХрд░ рдЧрдП, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рдХреЛрдб рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЬреАрдм рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ - рдФрд░ -
рдЕрдЧрд░ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреА рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рдХреЛрдб рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдПрдХ рдореИрд▓рд╛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реБрдИред
рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╕рд▓рд╛рд╣ рд╣реИред рддреЛ рдореИрдВ рдмрд╕ рдЕрдореЗрдЬрд╝рди рд▓рдВрдмрд░рдЧрд╛рд░реНрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдЗрдЧреЛрд░ рдХреЗ рд▓рд┐рдП рд╢реБрднрдХрд╛рдордирд╛рдПрдВ!
рдкрд╛рдВрдЪрд╡рд╛ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЪреМрдХрд╕ рд╕рд╛рдмрд┐рдд рд╣реБрдП рд╣реИрдВрдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╣рд╛рдиреА рдЕрдЧрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╣реБрдИред рдореЗрд░реЗ рд╕рд╣рдХрд░реНрдореА рдПрдВрдбреНрд░реЗ рдХрд╛рд░рдкреЛрд╡ рдХреНрдпреВрдЯреА рдврд╛рдВрдЪреЗ рдХреА рдПрдХ рдФрд░ рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рдереЗред рдХреБрдЫ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рд╡рд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдкрд░ рд▓рдбрд╝рдЦрдбрд╝рд╛рдпрд╛, рдЬрд┐рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЧрд▓рдд рдорд╛рдирд╛ред рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА:
QWindowsCursor::CursorState QWindowsCursor::cursorState() { enum { cursorShowing = 0x1, cursorSuppressed = 0x2 }; CURSORINFO cursorInfo; cursorInfo.cbSize = sizeof(CURSORINFO); if (GetCursorInfo(&cursorInfo)) { if (cursorInfo.flags & CursorShowing)
PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V616 CWE-480 'CursorShowing' рдХрд╛ рдирд╛рдо 0 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред qwindowscursor.cpp 669
рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдереА! рдпрд╣
CursorShowing рдирд┐рд░рдВрддрд░
0 рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдКрдкрд░ рд╕рд┐рд░реНрдл рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ
1 рджреНрд╡рд╛рд░рд╛ рдЖрд░рдВрднреАрдХреГрдд рдХреА рдЧрдИ рд╣реИрдВред
рдЪреВрдВрдХрд┐ рдПрдВрдбреНрд░реА рдПрдХ рдЕрд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЙрд╕рдиреЗ рдЪреЗрддрд╛рд╡рдиреА рдХреА рд╢реБрджреНрдзрддрд╛ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдард╛рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдзреНрдпрд╛рди рд╕реЗ рдХреЛрдб рдХреЗ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдЕрднреА рднреА рдПрдХ рдмрдЧ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдВрддрддрдГ рдмрдЧрдЯреНрд░реИрдХрд░ рдореЗрдВ рдЗрд╕реЗ рдЧрд▓рдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рджрд┐рдпрд╛ рддрд╛рдХрд┐ рдЕрдиреНрдп рд╕рд╣рдпреЛрдЧреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдорд╛рдк рд╕рдХреЗрдВред
рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рди рд╣реЛ рдЧрдпрд╛ред
0x1 рдорд╛рди рдХреЛ рдПрдХ рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ
рдХрд░реНрд╕рд░рд╢реВрдЯрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐
CursorShowing рдПрдХ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдФрд░ "рдСрдкрд░реЗрд╢рди" рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реИред рдпреЗ рджреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИрдВ, рдкрд╣рд▓рд╛ рд▓реЛрдЕрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ - рдПрдХ рдкреВрдВрдЬреА рдХреЗ рд╕рд╛рдеред
рдХреЛрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрдЧ
QWindowsCursor рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИред рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдпрд╣рд╛рдБ рджреА рдЧрдИ рд╣реИ:
class QWindowsCursor : public QPlatformCursor { public: enum CursorState { CursorShowing, CursorHidden, CursorSuppressed }; .... }
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдПрдирдо рдХреЛ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪреВрдБрдХрд┐
CursorShowing рдПрдиреНрдпреВрдорд░реЗрд╢рди рдореЗрдВ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ
0 рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рд╕рдорд╛рди рдирд╛рдо рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рдмрд╛рд░реАрдХреА рд╕реЗ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдЗрдХрд╛рдЗрдпрд╛рдБ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИрдВ рдпрд╛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╣рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЬреИрд╕реЗ рдХрд┐ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЧрд▓рдд рдХреЛрдб рдЕрднреА рднреА рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдВрджрд░ рдЖрд╕рд╛рди рдЧрд▓реА рдореЗрдВ рд░рд╣реЗрдЧрд╛ред
рдЪреМрдерд╛ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддреЗ рд╕рдордп рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреИрд░ рдореЗрдВ рдЧреЛрд▓реА рдорд╛рд░ рд▓реЗрдВрд╣рдо рд╢реАрд░реНрд╖ рддреАрди рдлрд╛рдЗрдирд▓рд┐рд╕реНрдЯ рдХреЗ рдХрд░реАрдм рд╣реЛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд▓рд╛рдЗрди рдореЗрдВ рдЕрдЧрд▓реА рдлреНрд░реАрд╕реНрд╡рд┐рдЪ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реИред
static const char *basic_gets(int *cnt) { .... int c = getchar(); if (c < 0) { if (fgets(command_buf, sizeof(command_buf) - 1, stdin) != command_buf) { break; } command_buf[strlen(command_buf)-1] = '\0'; break; } .... }
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: V1010 CWE-20 рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рджрд╛рдЧреА рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: 'рд╕реНрдЯреНрд░рд▓реЗрди (рдХрдорд╛рдВрдб_рдмреНрдпреВрдл)'ред
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
strlen (рдХрдорд╛рдВрдб_рдмреНрдпреВрдл) - 1 рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ: рдпрджрд┐
рдХрдорд╛рдВрдб рднрд╛рд╖рд╛ рд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рд╣рд╛рдЬ рд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ (рдПрдХрдорд╛рддреНрд░ рдЪрд░рд┐рддреНрд░ - '\ 0'), рддреЛ
рд╕реНрдЯреНрд░рд▓реЗрди (рдХрдорд╛рдВрдб_рдмреНрдпреВрдл) 0 рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред рдРрд╕реЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
command_buf [-1] рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдпрд╣ рдмреБрд░рд╛ рд╣реИ!
рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрд╕рд╛рд╣ рдпрд╣ рдирд╣реАрдВ рд╣реИ
рдХрд┐ рдпрд╣
рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
рдХреИрд╕реЗ ред рдпрд╣ рддреНрд░реБрдЯрд┐ рдЙрди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рд╕реЗ "рд╕реНрдкрд░реНрд╢" рдХрд░рддреЗ рд╣реИрдВ, рдкреБрди: рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдлреНрд░реАрд╕реНрд╡рд┐рдЪ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рд╛рде рдХреЗ рдПрдХ рд╕реВрдХреНрд╖реНрдо рдЖрдВрджреЛрд▓рди рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ рдиреЙрдирд╡реЗрдЬ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ! рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕реНрд░реЛрдд рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдмреАрдЪ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдмрддрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ:
рдзреНрдпрд╛рди рд░рдЦреЗрдВ, рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдм рд╣рдорд╛рд░реЗ рд╡рд┐рдЬреЗрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ: рд╣рдо рдЕрдм рдПрдВрдбрдЧреЗрдо рдореЗрдВ рд╣реИрдВ! рд╡реИрд╕реЗ, рдмрдЧ-рдлрд╛рдЗрдирд▓рд┐рд╕реНрдЯ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд▓рдВрдмрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдлрд┐рд░ рдКрдм рдЧрдП рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪрд┐рдХ рднреА рд╣реЛрдиреЗ рд▓рдЧреЗ рд╣реИрдВред рдЬрдм рд╣рдо рджреВрд░ рдереЗ, рддрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬреЛ рдордВрдЪрди рдХрд┐рдпрд╛ рдерд╛, рдЙрд╕реЗ рджреЗрдЦреЛ!
рддреАрд╕рд░рд╛ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
NCBI рдЬреАрдиреЛрдо рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░: рдЦрддрд░реЗ рдХреЗ рддрд╣рдд рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЕрдиреБрд╕рдВрдзрд╛рдиNCBI рдЬреАрдиреЛрдо рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдПрдХ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ, рдЬреЛ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рд╢реАрд░реНрд╖ 3 рд╡рд┐рдЬреЗрддрд╛рдУрдВ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдЖрдкрдХреЛ рдЗрд╕ рдмрдЧ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдиреБрд╡рд╛рдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдЕрд▓реМрдХрд┐рдХ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рддреНрд░реБрдЯрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХрд╕реНрдорд┐рдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИред
void tds_answer_challenge(....) { .... if (ntlm_v == 1) { .... memset(hash, 0, sizeof(hash)); memset(passwd_buf, 0, sizeof(passwd_buf)); ... } else { .... } }
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА:- V597 рд╕рдВрдХрд▓рдХ 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 'рд╣реИрд╢' рдмрдлрд░ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП memset_s () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреБрдиреМрддреАред 365
- V597 рдХрдВрдкрд╛рдЗрд▓рд░ 'рдореЗрдорд╕реЗрдЯ' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рдбрд┐рд▓реАрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ 'passwd_buf' рдмрдлрд░ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП memset_s () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреБрдиреМрддреАред рекремрем
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдПрдХ рдмрдЧ рдорд┐рд▓рд╛? рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рдЖрдк рдЕрдЯрд╛рдмреЙрдп рд╣реИрдВ! .. рдпрд╛ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдЕрддрд┐рдорд╛рдирд╡реАрдпред
рдЗрд╕ рддрдереНрдп рдХрд╛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдХреВрд▓рди рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдирд┐рд░реНрдорд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдЗрд╕ рддрдереНрдп рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдм рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдмрдлрд░,
рдЬрд┐рд╕реЗ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ , рдХрд╣реАрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реЗ "рдЕрдирд╛рд╡рд╢реНрдпрдХ" рдХреЙрд▓ рдХреЛ
рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВред рдлрд┐рд░ рдмрдлрд░ рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреА рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдореЗрдВ рд░рд╣ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл, рдпрд╣ рдЧреАрдХ рдЯрд┐рдкреНрдкрдгреА "рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдкрд╛рдВрдбрд┐рддреНрдп рд╣реИ" рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдордЬреЗрджрд╛рд░ рднреА рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рджреА рдЧрдИ рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕рдЯреАрдХ рд░рд╣рдиреЗ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдИ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рджреЛрд╖ рдХреА рдЕрдирджреЗрдЦреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХреЙрдорди рд╡реАрдХрдиреЗрд╕ рдПрдиреНрдпреВрдорд░реЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рджреЛрд╖ рдХреЛ
CWE-14 : рдХрдВрдкрд╛рдЗрд▓рд░ рд░рд┐рдореВрд╡рд▓ рдСрдлрд╝ рдХреЛрдб рдЯреВ рдХреНрд▓реАрдпрд░ рдмрдлрд╝рд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдкрдХреЛ
memset_s () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдореЗрдореЛрд░реА
рдбреАрд▓рдХреНрд▓реЗрд╢рди рд╕реБрд░рдХреНрд╖рд┐рдд рдерд╛ред рдлрд╝рдВрдХреНрд╢рди рджреЛрдиреЛрдВ рд╣реА
рдореЗрдорд░реА рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ
() рдФрд░ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рдХреИрд╕реЗ PVS-Studio рддреАрди рдФрд░ рдПрдХ рдЖрдзреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЪреМрдХрд╕ рд╕рд╛рдмрд┐рдд рд╣реБрдЖрд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рд╣рдореЗрдВ рдПрдХ рд░рдЬрдд рдкрджрдХ рджрд┐рд▓рд╛рдпрд╛ред рдЙрдиреНрд╣реЗрдВ рдпрдХреАрди рдерд╛ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдХреБрдЫ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдмрд╛рддреЗрдВ рдЬрд╛рд░реА рдХреА рд╣реИрдВред
рдЗрд╡рдЧреЗрдиреА рдХреЛ рдИрдореЗрд▓ рдорд┐рд▓рд╛, рдЙрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрд╛ рдФрд░ рд╕рд┐рдпрд╛рд╡реЗрдЯреЛрд╕реНрд▓рд╛рд╡ рдХреЛ рднреЗрдЬрд╛ред Svyatoslav рдЧреНрд░рд╛рд╣рдХ рдХреЗ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдПрдХ рдХрд░реАрдмреА рдирдЬрд╝рд░ рд░рдЦрддрд╛ рдерд╛, рдФрд░ рдЙрд╕рдиреЗ рд╕реЛрдЪрд╛: "рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдЧрдбрд╝рдмрдбрд╝реА рдХреА рд╣реИ?"ред рдЗрд╕рд▓рд┐рдП рд╡рд╣ рдПрдВрдбреНрд░реА рдХреЗ рдкрд╛рд╕ рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП рдЧрдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд╕ рд╕реНрдерд╛рди рдХреЛ рднреА рдЬрд╛рдВрдЪрд╛ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдЙрддреНрдкрдиреНрди рдХреАред
рддреЛ рдпрд╣ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣рдорд╛рд░реЗ рдмрдЧ рдЯреНрд░реИрдХрд░ рдореЗрдВ рдХрд╛рд░реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕рд┐рдпрд╛рд╡реЗрдЯреЛрд╕реНрд▓рд╛рд╡ рдиреЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рд╢реБрд░реВ рдХрд┐рдП, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╡рд╣реА рдорд┐рд▓рд╛ рдЬреЛ рдЧрд▓рдд рдерд╛ред
рдХреЛрдИ рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдЦреЛрдЬ рд╕рдХрд╛, рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдореЗрдВ рдереЗред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рднреА рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЙрдиреНрд╣реЗрдВ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣реЗ, рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдереА!
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдРрд╕рд╛ рдЪрд╛рд▓рд╛рдХ рдмрдЧ рдорд┐рд▓реЗрдЧрд╛? рд╕рддрд░реНрдХрддрд╛ рдФрд░ рд╕рд╛рд╡рдзрд╛рдиреА рдкрд░ рдЦреБрдж рдХреЛ рдкрд░рдЦреЗрдВред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА:- V560 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ: (ch> = 0x0FF21)ред decodew.cpp 525
- V560 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИ: (ch <= 0x0FF3A)ред decodew.cpp 525
- V560 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ: (ch> = 0x0FF41)ред decodew.cpp 525
- V560 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИ: (ch <= 0x0FF5A)ред decodew.cpp 525
рдпрджрд┐ рдЖрдкрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ - рдЖрдк рдХреЗ рд▓рд┐рдП рдпрд╢!
рддреНрд░реБрдЯрд┐ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд╖реЗрдз рдСрдкрд░реЗрдЯрд░ (!) рдкреВрд░реА рд╕реНрдерд┐рддрд┐ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рдХрд╛ рдкрд╣рд▓рд╛ рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐:
!((ch >= 0x0FF10) && (ch <= 0x0FF19))
рдпрджрд┐ рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╕рд╣реА рд╣реИ, рддреЛ
ch рдЪрд░ рдорд╛рди [0x0FF10 ... 0x0FF19] рд╢реНрд░реЗрдгреА рдореЗрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЪрд╛рд░ рдФрд░ рддреБрд▓рдирд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░рд░реНрдердХ рд╣реИрдВ: рд╡реЗ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд╣реЛрдВрдЧреЗред
рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреБрдЫ рдирд┐рдпрдореЛрдВ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреА рддрд░рд╣ рдХреЛрдб рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИред рджреВрд╕рд░реЗ, рдЖрдкрдХреЛ рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рднрд╛рд╡реЛрдВ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХреЛрдб рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
const bool isLetterOrDigit = (ch >= 0x0FF10 && ch <= 0x0FF19)
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрдо рдХреЛрд╖реНрдардХ рд╣реЛрдВрдЧреЗ рдФрд░ рджреВрд╕рд░реА рдУрд░ - рдЖрдк рдХрднреА-рдХрднрд╛рд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдВрдЧреЗред
рдпрд╣рд╛рдБ рд╢реАрд░реНрд╖ рдкрд░ рдЪреЗрд░реА рдЖрддрд╛ рд╣реИ - рдЪрд▓реЛ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ!
рдкрд╣рд▓рд╛ рд╕реНрдерд╛рди
рд╕реНрд░реЛрдд:
рд╢реЙрдХреНрдб рд╕рд┐рд╕реНрдЯрдо: рд▓реЗрдЬреЗрдВрдбрд░реА рд╕рд┐рд╕реНрдЯрдо рд╢реЙрдХ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рддреНрд░реБрдЯрд┐рдпрд╛рдВрдЖрдЬ рдХрд╛ рд╢реАрд░реНрд╖ рдлрд╛рдЗрдирд▓ рджрд┐рдЧреНрдЧрдЬ рд╕рд┐рд╕реНрдЯрдо рд╢реЙрдХ рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ! рдпрд╣ 1994 рдореЗрдВ рдХрд╛рдлреА рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЧреЗрдо рд╣реИ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдмрди рдЧрдпрд╛, рдЬреИрд╕реЗ рдХрд┐ рдбреЗрдб рд╕реНрдкреЗрд╕, рдмрд╛рдпреЛрд╢реЙрдХ рдФрд░ рдбреНрдпреВрд╕ рдПрдХреНрд╕ред
рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдореБрдЭреЗ рдХрдмреВрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдЬреЛ рджрд┐рдЦрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред рдЕрд╕рд▓ рдореЗрдВ, рдпрд╣ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдЗрд╕реЗ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛!
рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЦреЗрд▓ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рд╡рд┐рдХреНрдЯреЛрд░рд┐рдпрд╛ рдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдЖрдХрд░реНрд╖рдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреАред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдВрд╢реЛрдВ рдореЗрдВ рдЙрд╕рдиреЗ рдХреБрдЫ рдордЬрд╛рдХрд┐рдпрд╛ рдФрд░ рд╡рд┐рдбрдВрдмрдирд╛рдкреВрд░реНрдг рдЯрд┐рдкреНрдкрдгреА рдХреА, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд╡рд┐рддрд╛ рднреАред
рдпрд╣ рд╣реИ рдХрд┐ 90 рдХреЗ рджрд╢рдХ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЧреЗрдо рдореЗрдВ рдЫреЛрдбрд╝реА рдЧрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИрдВ ... рд╡реИрд╕реЗ, рдбреЙрдЧ рдЪрд░реНрдЪ - рд╕рд┐рд╕реНрдЯрдо рд╢реЙрдХ рдХрд╛ рдПрдХ рдореБрдЦреНрдп рдбрд┐рдЬрд╛рдЗрдирд░, рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рднреА рд╡реНрдпрд╕реНрдд рдерд╛ред рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдЗрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ? рдЖрд╢рд╛ рд╣реИ, рдкреБрд░реБрд╖реЛрдВ рдореЗрдВ рддреМрд▓рд┐рдП рд╕рд╛рдорд╛рди рдЙрд╕рдХреА рдХрд░рддреВрдд рдирд╣реАрдВ рд╣реИ :)
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдВрдд рдореЗрдВ, рдореИрдВ
рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдирдП рдХреАрдбрд╝реЗ рдЦреЛрдЬрдиреЗ рдФрд░ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ! рдЖрдкрдХреЗ рдмрд┐рдирд╛, рдпрд╣ рд▓реЗрдЦ рдЙрддрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЕрдкрдиреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реЗ рд╕рд╛рд▓ рд╣рдо рдХреЗрд╡рд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рд╡реНрдпрд╕реНрдд рдирд╣реАрдВ рд░рд╣реЗ рд╣реИрдВред рд╣рдордиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕реБрдзрд╛рд░ рднреА рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЗрд╕рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдП рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдХрдИ рдирдП рд╕рдВрдХрд▓рдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд┐рдпрдореЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдордиреЗ
MISRA C рдФрд░ MISRA C ++ рдорд╛рдирдХреЛрдВ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛
рд╣реИ ред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдПрдХ рдирдИ рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдереАред рд╣рд╛рдБ, рдЕрдм рд╣рдо
рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдФрд░ рдХреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ
рдирд╡реАрдиреАрдХреГрдд рдЖрдЗрдХрди рд╣реИ :)
рдореИрдВ рдЕрдкрдиреЗ рдкрд╛рдардХреЛрдВ рдХреЛ рднреА рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рдорд╛рд░реЗ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдФрд░ рд╣рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдЖрдк рдмрд╣реБрдд рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИрдВ рдФрд░ рдЖрдк рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ!
2018 рдХреА рд╣рдорд╛рд░реА рд╢реАрд░реНрд╖ 10 рд╕реА ++ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИрдВред рдЖрдкрдХреЛ рдХреМрди-рдХреМрди рд╕реЗ рдЯреБрдХрдбрд╝реЗ рдкрд╕рдВрдж рдЖрдП рдФрд░ рдХреНрдпреЛрдВ? рдХреНрдпрд╛ рдЖрдк 2018 рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдП?
рд╕рднреА рдмреЗрд╣рддрд░реАрди, рдЕрдЧрд▓реА рдмрд╛рд░ рдорд┐рд▓рддреЗ рд╣реИрдВ!