рдХреЛрдбрдордзреАрд▓ рдмрдЧ рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯреЗрд▓рдиреЗ рдХрдВрдЯреНрд░реЛрд▓рдлреНрд▓реЕрдЧ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛрдб рдЙрдШрдбрд▓рд╛

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

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

рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рдзреАрди рдХреЛрдб рд╕рдВрджрд░реНрдн рдирд┐рд░реНрдгрдпрд╛рдЪреНрдпрд╛ рдЭрд╛рдбрд╛рд╡рд┐рд░реБрджреНрдз рддрдкрд╛рд╕рд▓реЗ рдЬрд╛рдгрд╛рд░реЗ рдирдореБрдиреЗ рдУрд│рдЦрдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпреЗрддреВрди рдЬрд╛рддрд╛рдд. рд╢реЗрдЬрд╛рд░рдЪреНрдпрд╛ рд╢рд╛рдЦрд╛рдВрд╕рд╣ рдореЛрдареНрдпрд╛ рд╡рд┐рд╕рдВрдЧрддреА рддрдкрд╛рд╕рд▓реНрдпрд╛ рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреЕрдЯрд░реНрдирдордзреНрдпреЗ рд╡рд┐рд╕рдВрдЧрддреАрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рджрд░реНрд╢рд╡рддреЗ. рд╕рд┐рд╕реНрдЯрдо рддреБрдореНрд╣рд╛рд▓рд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯрдордзреАрд▓ рдПрд░рд░ рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареАрдЪ рдирд╛рд╣реА, рддрд░ рд╕реБрдзрд╛рд░рдгрд╛ рд╕реБрдЪрд╡рдгреНрдпрд╛рдЪреА рджреЗрдЦреАрд▓ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, OpenSSL рдХреЛрдбрдордзреНрдпреЗ, "(s1 == NULL) тИз (s2 == NULL)" рд╣реЗ рдмрд╛рдВрдзрдХрд╛рдо рдУрд│рдЦрд▓реЗ рдЧреЗрд▓реЗ, рдЬреЗ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдЯреНрд░реАрдордзреНрдпреЗ рдлрдХреНрдд 8 рд╡реЗрд│рд╛ рджрд┐рд╕рд▓реЗ, рддрд░ рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│рдЪреА рд╢рд╛рдЦрд╛ "(s1 ==) рдпрд╛ рдореВрд▓реНрдпрд╛рд╕рд╣ NULL) || (s2 == NULL)тАЭ рд╕реБрдорд╛рд░реЗ 7 рд╣рдЬрд╛рд░ рд╡реЗрд│рд╛ рдЖрд▓реА. рдкреНрд░рдгрд╛рд▓реАрд▓рд╛ рдПрдХ рд╡рд┐рд╕рдВрдЧрддреА рджреЗрдЦреАрд▓ рдЖрдврд│рд▓реА тАЬ(s1 == NULL) | (s2 == NULL)тАЭ рдЬреЗ рдЭрд╛рдбрд╛рдордзреНрдпреЗ 32 рд╡реЗрд│рд╛ рджрд┐рд╕рд▓реЗ.

рдХреЛрдбрдордзреАрд▓ рдмрдЧ рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯреЗрд▓рдиреЗ рдХрдВрдЯреНрд░реЛрд▓рдлреНрд▓реЕрдЧ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛрдб рдЙрдШрдбрд▓рд╛

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

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

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

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