ControlFlag 1.0 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди, C рдХреЛрдбрдордзреАрд▓ рддреНрд░реБрдЯреА рдУрд│рдЦрдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди

Intel рдиреЗ ControlFlag 1.0 рдЯреВрд▓рдЪреЗ рдкрд╣рд┐рд▓реЗ рдореЛрдареЗ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╡рд┐рджреНрдпрдорд╛рди рдХреЛрдбрд╡рд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рдкрд░реВрди рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреАрд▓ рддреНрд░реБрдЯреА рдЖрдгрд┐ рд╡рд┐рд╕рдВрдЧрддреА рдУрд│рдЦрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдХрдВрдЯреНрд░реЛрд▓рдлреНрд▓реЕрдЧ рддрдпрд╛рд░ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рдд рдирд╛рд╣реА, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рд░реНрд╡ рд╕рдВрднрд╛рд╡реНрдп рдкрд░реНрдпрд╛рдп рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдХрдареАрдг рдЖрд╣реЗ, рдкрд░рдВрддреБ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд╡рд┐рджреНрдпрдорд╛рди рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рд╡рд┐рд╡рд┐рдз рднрд╛рд╖рд╛ рд░рдЪрдирд╛рдВрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд╡рд░реАрд▓ рдЖрдХрдбреЗрд╡рд╛рд░реАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ. ControlFlag рдХреЛрдб C++ рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ MIT рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЗрд▓реЗрд▓рд╛ рдЖрд╣реЗ.

GitHub рдЖрдгрд┐ рддрддреНрд╕рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрд╛рдВрдбрд╛рд░рд╛рдВрдордзреНрдпреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдореБрдХреНрдд-рд╕реНрд░реЛрдд рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рджреНрдпрдорд╛рди рдХреЛрдб рдЕреЕрд░реЗрдЪреЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдореЙрдбреЗрд▓ рддрдпрд╛рд░ рдХрд░реВрди рд╕рд┐рд╕реНрдЯрдорд▓рд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдкреНрд░рд╢рд┐рдХреНрд╖рдгрд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдкреНрд░рдгрд╛рд▓реА рдХреЛрдбрдордзреАрд▓ рд╕рдВрд░рдЪрдирд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирдореБрдиреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдпрд╛ рдирдореБрдиреНрдпрд╛рдВрдордзреАрд▓ рдХрдиреЗрдХреНрд╢рдирдЪреЗ рдПрдХ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛рддреНрдордХ рд╡реГрдХреНрд╖ рддрдпрд╛рд░ рдХрд░рддреЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреАрд▓ рдХреЛрдб рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪрд╛ рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддреЗ. рдкрд░рд┐рдгрд╛рдореА, рдПрдХ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрдгрдп рдШреЗрдгрд╛рд░рд╛ рд╡реГрдХреНрд╖ рддрдпрд╛рд░ рд╣реЛрддреЛ рдЬреЛ рд╕рд░реНрд╡ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдЪрд╛ рдЕрдиреБрднрд╡ рдПрдХрддреНрд░ рдХрд░рддреЛ. рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рдзреАрди рдХреЛрдб рд╕рдВрджрд░реНрдн рдирд┐рд░реНрдгрдпрд╛рдЪреНрдпрд╛ рдЭрд╛рдбрд╛рд╡рд┐рд░реБрджреНрдз рддрдкрд╛рд╕рд▓реЗ рдЬрд╛рдгрд╛рд░реЗ рдирдореБрдиреЗ рдУрд│рдЦрдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпреЗрддреВрди рдЬрд╛рддрд╛рдд. рд╢реЗрдЬрд╛рд░рдЪреНрдпрд╛ рд╢рд╛рдЦрд╛рдВрд╕рд╣ рдореЛрдареНрдпрд╛ рд╡рд┐рд╕рдВрдЧрддреА рддрдкрд╛рд╕рд▓реНрдпрд╛ рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдирдореБрдирд╛рдордзреНрдпреЗ рд╡рд┐рд╕рдВрдЧрддреАрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рджрд░реНрд╢рд╡рд┐рддрд╛рдд.

ControlFlag 1.0 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди, C рдХреЛрдбрдордзреАрд▓ рддреНрд░реБрдЯреА рдУрд│рдЦрдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди

ControlFlag рдЪреНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди, рд╡рд┐рдХрд╕рдХрд╛рдВрдиреА OpenSSL рдЖрдгрд┐ cURL рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреНрдпрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗ:

  • рд╡рд┐рд╕рдВрдЧрдд рд░рдЪрдирд╛ тАЬ(s1 == NULL) тИз (s2 == NULL)тАЭ рдЖрдгрд┐ тАЬ(s1 == NULL) | (s2 == NULL)" , рдЬреЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдкреЕрдЯрд░реНрдирд╢реА рдЬреБрд│рдд рдирд╛рд╣реА "(s1 == NULL) || (s2 == NULL)" рдХреЛрдбрдиреЗ "(-2 == rv)" (рд╡рдЬрд╛ рдПрдХ рдЯрд╛рдпрдкреЛ рд╣реЛрддрд╛) рдЖрдгрд┐ "BIO_puts(bp, ":") <= 0)" (рдЪреЗ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рдЪреЗ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд) рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрдордзреАрд▓ рд╡рд┐рд╕рдВрдЧрддреА рджреЗрдЦреАрд▓ рдУрд│рдЦрд▓реНрдпрд╛. рдлрдВрдХреНрд╢рди рддреЗ "== 0" рдЕрд╕рд╛рдпрд▓рд╛ рд╣рд╡реЗ рд╣реЛрддреЗ).
  • cURL рдордзреНрдпреЗ, рдПрдХ рддреНрд░реБрдЯреА рдЖрдврд│рд▓реА рдЬреА рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╛рдВрджреНрд╡рд╛рд░реЗ "s->keepon" рд░рдЪрдирд╛ рдШрдЯрдХ рд╡рд╛рдкрд░рддрд╛рдирд╛ рдЖрдврд│рд▓реА рдирд╛рд╣реА, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛, рдкрд░рдВрддреБ рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдп TRUE рд╢реА рддреБрд▓рдирд╛ рдХреЗрд▓реА рдЧреЗрд▓реА.

ControlFlag 1.0 рдЖрд╡реГрддреНрддреАрдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкреИрдХреА, C рднрд╛рд╖реЗрд╕рд╛рдареА рдорд╛рдирдХ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЖрдгрд┐ рд╕рд╢рд░реНрдд тАЬifтАЭ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрдордзреНрдпреЗ рд╡рд┐рд╕рдВрдЧрддреА рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХреЛрдб рдлреНрд░реЕрдЧрдореЗрдВрдЯрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛рдирд╛ тАЬif (x = 7) y = x;тАЭ рд╕рд┐рд╕реНрдЯреАрдо рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрд▓ рдХреА "if" рд╡рд┐рдзрд╛рди рд╕рд╛рдорд╛рдиреНрдпрдд: рдЕрдВрдХреАрдп рдореВрд▓реНрдпрд╛рдВрдЪреА рддреБрд▓рдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "рдЪрд░ == рд╕рдВрдЦреНрдпрд╛" рд░рдЪрдирд╛ рд╡рд╛рдкрд░рддреЗ, рддреНрдпрд╛рдореБрд│реЗ "if" рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдордзреАрд▓ "рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ = рд╕рдВрдЦреНрдпрд╛" рд╣реЗ рдЯрд╛рдпрдкреЛрдореБрд│реЗ рдЭрд╛рд▓реЗ рдЕрд╕рдгреНрдпрд╛рдЪреА рджрд╛рдЯ рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ. рдХрд┐рдЯрдордзреНрдпреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ GitHub рд╡рд░ рд╡рд┐рджреНрдпрдорд╛рди C рднрд╛рд╖рд╛ рднрд╛рдВрдбрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдореЙрдбреЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рд░реЗрдбреАрдореЗрдб рдореЙрдбреЗрд▓реНрд╕ рджреЗрдЦреАрд▓ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрд╡рд░рд┐рдд рдХреЛрдб рддрдкрд╛рд╕рдгреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддрд╛рдд.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛