ืžืขืจื›ืช ืœืžื™ื“ืช ืžื›ื•ื ื” ControlFlag ื‘ืงื•ื“ ืคืชื•ื— ืฉืœ ืื™ื ื˜ืœ ืœื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ืงื•ื“

ืื™ื ื˜ืœ ื’ื™ืœืชื” ืคื™ืชื•ื—ื™ื ื”ืงืฉื•ืจื™ื ืœืคืจื•ื™ืงื˜ ื”ืžื—ืงืจ ControlFlag ืฉืžื˜ืจืชื• ืœื™ืฆื•ืจ ืžืขืจื›ืช ืœืžื™ื“ืช ืžื›ื•ื ื” ืœืฉื™ืคื•ืจ ืื™ื›ื•ืช ื”ืงื•ื“. ืขืจื›ืช ื”ื›ืœื™ื ืฉื”ื•ื›ื ื” ืขืœ ื™ื“ื™ ื”ืคืจื•ื™ืงื˜ ืžืืคืฉืจืช, ื‘ื”ืชื‘ืกืก ืขืœ ืžื•ื“ืœ ืฉื”ื•ื›ืฉืจ ืขืœ ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ืงื•ื“ ืงื™ื™ื, ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ื•ื—ืจื™ื’ื•ืช ืฉื•ื ื•ืช ื‘ื˜ืงืกื˜ื™ ืžืงื•ืจ ืฉื ื›ืชื‘ื• ื‘ืฉืคื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื” ื›ืžื• C/C++. ื”ืžืขืจื›ืช ืžืชืื™ืžื” ืœื–ื™ื”ื•ื™ ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ื‘ืขื™ื•ืช ื‘ืงื•ื“, ื”ื—ืœ ืžื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ื”ืงืœื“ื” ื•ืฉื™ืœื•ื‘ื™ ื˜ื™ืคื•ืกื™ื ืฉื’ื•ื™ื™ื, ื•ืขื“ ืœื–ื™ื”ื•ื™ ื—ืกืจ ืฉืœ ื‘ื“ื™ืงื•ืช ืขืจืš NULL ื‘ืžืฆื‘ื™ืขื™ื ื•ื‘ืขื™ื•ืช ื–ื™ื›ืจื•ืŸ. ืงื•ื“ ControlFlag ื›ืชื•ื‘ ื‘-C++ ื•ื”ื•ื ื‘ืงื•ื“ ืคืชื•ื— ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT.

ื”ืžืขืจื›ืช ืœื•ืžื“ืช ืขืฆืžื™ืช ืขืœ ื™ื“ื™ ื‘ื ื™ื™ืช ืžื•ื“ืœ ืกื˜ื˜ื™ืกื˜ื™ ืฉืœ ืžืขืจืš ื”ืงื•ื“ ื”ืงื™ื™ื ืฉืœ ืคืจื•ื™ืงื˜ื™ื ืคืชื•ื—ื™ื ื”ืžืชืคืจืกืžื™ื ื‘-GitHub ื•ื‘ืžืื’ืจื™ื ืฆื™ื‘ื•ืจื™ื™ื ื“ื•ืžื™ื. ื‘ืฉืœื‘ ื”ื”ื“ืจื›ื”, ื”ืžืขืจื›ืช ืงื•ื‘ืขืช ื“ืคื•ืกื™ื ืื•ืคื™ื™ื ื™ื™ื ืœื‘ื ื™ื™ืช ืžื‘ื ื™ื ื‘ืงื•ื“ ื•ื‘ื•ื ื” ืขืฅ ืชื—ื‘ื™ืจื™ ืฉืœ ืงืฉืจื™ื ื‘ื™ืŸ ืชื‘ื ื™ื•ืช ืืœื•, ื”ืžืฉืงืฃ ืืช ื–ืจื™ืžืช ื‘ื™ืฆื•ืข ื”ืงื•ื“ ื‘ืชื•ื›ื ื™ืช. ื›ืชื•ืฆืื” ืžื›ืš, ื ื•ืฆืจ ืขืฅ ืงื‘ืœืช ื”ื—ืœื˜ื•ืช ื”ืชื™ื™ื—ืกื•ืช ื”ืžืฉืœื‘ ืืช ื—ื•ื•ื™ืช ื”ืคื™ืชื•ื— ืฉืœ ื›ืœ ืงื•ื“ื™ ื”ืžืงื•ืจ ื”ืžื ื•ืชื—ื™ื.

ื”ืงื•ื“ ื”ื ื‘ื“ืง ืขื•ื‘ืจ ืชื”ืœื™ืš ื“ื•ืžื” ืฉืœ ื–ื™ื”ื•ื™ ื“ืคื•ืกื™ื ืฉื ื‘ื“ืงื™ื ืžื•ืœ ืขืฅ ื”ื—ืœื˜ื•ืช ื”ืชื™ื™ื—ืกื•ืช. ืคืขืจื™ื ื’ื“ื•ืœื™ื ืขื ืกื ื™ืคื™ื ืฉื›ื ื™ื ืžืฆื‘ื™ืขื™ื ืขืœ ื ื•ื›ื—ื•ืช ืฉืœ ื—ืจื™ื’ื” ื‘ื“ืคื•ืก ื”ื ื‘ื“ืง. ื”ืžืขืจื›ืช ื’ื ืžืืคืฉืจืช ืœืš ืœื ืจืง ืœื–ื”ื•ืช ืฉื’ื™ืื” ื‘ืชื‘ื ื™ืช, ืืœื ื’ื ืœื”ืฆื™ืข ืชื™ืงื•ืŸ. ืœื“ื•ื’ืžื”, ื‘ืงื•ื“ OpenSSL ื–ื•ื”ืชื” ื”ืžื‘ื ื” "(s1 == NULL) โˆง (s2 == NULL)", ืฉื”ื•ืคื™ืขื” ื‘ืขืฅ ื”ืชื—ื‘ื™ืจ ืจืง 8 ืคืขืžื™ื, ื‘ืขื•ื“ ืฉื”ืขื ืฃ ื”ืงืจื•ื‘ ื‘ื™ื•ืชืจ ืขื ื”ืขืจืš "(s1 == NULL) || (s2 == NULL)" ื”ืชืจื—ืฉ ื›-7 ืืœืฃ ืคืขืžื™ื. ื”ืžืขืจื›ืช ื’ื ื–ื™ื”ืชื” ื—ืจื™ื’ื” "(s1 == NULL) | (s2 == NULL)" ืฉื”ื•ืคื™ืข 32 ืคืขืžื™ื ื‘ืขืฅ.

ืžืขืจื›ืช ืœืžื™ื“ืช ืžื›ื•ื ื” ControlFlag ื‘ืงื•ื“ ืคืชื•ื— ืฉืœ ืื™ื ื˜ืœ ืœื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ืงื•ื“

ื‘ืขืช ื ื™ืชื•ื— ืงื˜ืข ื”ืงื•ื“ "ืื (x = 7) y = x;" ื”ืžืขืจื›ืช ืงื‘ืขื” ื›ื™ ื”ืžื‘ื ื” ืฉืœ "ืžืฉืชื ื” == ืžืกืคืจ" ืžืฉืžืฉ ื‘ื“ืจืš ื›ืœืœ ื‘ืื•ืคืจื˜ื•ืจ "ืื" ื›ื“ื™ ืœื”ืฉื•ื•ืช ืขืจื›ื™ื ืžืกืคืจื™ื™ื, ื›ืš ืฉืกื‘ื™ืจ ืžืื•ื“ ืฉื”ื”ืชื•ื•ื™ื” "ืžืฉืชื ื” = ืžืกืคืจ" ื‘ื‘ื™ื˜ื•ื™ "ืื" ื ื’ืจืžืช ืขืœ ื™ื“ื™ ื. ื˜ืขื•ืช ื“ืคื•ืก. ืžื ืชื—ื™ื ืกื˜ื˜ื™ื™ื ืžืกื•ืจืชื™ื™ื ื”ื™ื• ืชื•ืคืกื™ื ืฉื’ื™ืื” ื›ื–ื•, ืืš ื‘ื ื™ื’ื•ื“ ืืœื™ื”ื, ControlFlag ืื™ื ื• ืžื™ื™ืฉื ื›ืœืœื™ื ืžื•ื›ื ื™ื, ื‘ื”ื ืงืฉื” ืœืกืคืง ืืช ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช ื”ืืคืฉืจื™ื•ืช, ืืœื ืžื‘ื•ืกืก ืขืœ ืกื˜ื˜ื™ืกื˜ื™ืงื” ืฉืœ ืฉื™ืžื•ืฉ ื‘ืžื‘ื ื™ื ืฉื•ื ื™ื ื‘ืžืกืคืจ ืจื‘. ืฉืœ ืคืจื•ื™ืงื˜ื™ื.

ื›ื ื™ืกื•ื™, ืฉื™ืžื•ืฉ ื‘-ControlFlag ื‘ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื›ืœื™ ื”ืฉื™ืจื•ืช cURL, ืืฉืจ ืžืฆื•ื˜ื˜ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ื“ื•ื’ืžื” ืœืงื•ื“ ืื™ื›ื•ืชื™ ื•ื ื‘ื“ืง, ื–ื•ื”ืชื” ืฉื’ื™ืื” ืฉืœื ื–ื•ื”ืชื” ืขืœ ื™ื“ื™ ืžื ืชื—ื™ื ืกื˜ื˜ื™ื™ื ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืจื›ื™ื‘ ื”ืžื‘ื ื” "s->keepon", ืฉื”ื™ื” ืœื• ืกื•ื’ ืžืกืคืจื™, ืืš ื”ื•ืฉื•ื•ื” ืœืขืจืš ื”ื‘ื•ืœืื ื™ TRUE . ื‘ืงื•ื“ OpenSSL, ื‘ื ื•ืกืฃ ืœื‘ืขื™ื” ืฉื”ื•ื–ื›ืจื” ืœืขื™ืœ ืขื "(s1 == NULL) โˆง (s2 == NULL)", ื–ื•ื”ื• ื—ืจื™ื’ื•ืช ื’ื ื‘ื‘ื™ื˜ื•ื™ื™ื "(-2 == rv)" (ื”ืžื™ื ื•ืก ื”ื™ื” ืฉื’ื™ืืช ื”ืงืœื“ื”) ื•-"BIO_puts(bp, ":")

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”