Intel เช เช•เซ‹เชกเชฎเชพเช‚ เชฌเช— เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡ ControlFlag เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เช•เซ‹เชก เช–เซ‹เชฒเซเชฏเซ‹

Intel เช ControlFlag เชธเช‚เชถเซ‹เชงเชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเชพเชฅเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชตเชฟเช•เชพเชธเชจเซ€ เชถเซ‹เชง เช•เชฐเซ€ เช›เซ‡, เชœเซ‡เชจเซ‹ เชนเซ‡เชคเซ เช•เซ‹เชก เช—เซเชฃเชตเชคเซเชคเชพ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เช›เซ‡. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเซเชตเชพเชฐเชพ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เชŸเซ‚เชฒเช•เซ€เชŸ, เชนเชพเชฒเชจเชพ เช•เซ‹เชกเชจเซ€ เชฎเซ‹เชŸเซ€ เชฎเชพเชคเซเชฐเชพ เชชเชฐ เชชเซเชฐเชถเชฟเช•เซเชทเชฟเชค เชฎเซ‹เชกเชฒเชจเชพ เช†เชงเชพเชฐเซ‡, C/C++ เชœเซ‡เชตเซ€ เช‰เชšเซเชš-เชธเซเชคเชฐเชจเซ€ เชญเชพเชทเชพเช“เชฎเชพเช‚ เชฒเช–เซ‡เชฒเชพ เชธเซเชฐเซ‹เชค เชŸเซ‡เช•เซเชธเซเชŸเซเชธเชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชญเซ‚เชฒเซ‹ เช…เชจเซ‡ เชตเชฟเชธเช‚เช—เชคเชคเชพเช“เชจเซ‡ เชถเซ‹เชงเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชธเชฟเชธเซเชŸเชฎ เช•เซ‹เชกเชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชชเซเชฐเช•เชพเชฐเชจเซ€ เชธเชฎเชธเซเชฏเชพเช“เชจเซ‡ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เช›เซ‡, เชŸเชพเชˆเชชเซ‹ เช…เชจเซ‡ เช–เซ‹เชŸเชพ เชชเซเชฐเช•เชพเชฐเชจเชพ เชธเช‚เชฏเซ‹เชœเชจเซ‹ เชถเซ‹เชงเชตเชพเชฅเซ€ เชฒเชˆเชจเซ‡ เชชเซ‹เชˆเชจเซเชŸเชฐเซเชธ เช…เชจเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชธเชฎเชธเซเชฏเชพเช“เชฎเชพเช‚ เชšเซ‚เช•เซ€ เช—เชฏเซ‡เชฒ NULL เชšเซ‡เช•เซเชธ เชถเซ‹เชงเชตเชพ เชธเซเชงเซ€. ControlFlag เช•เซ‹เชก C++ เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒเซ‹ เช›เซ‡ เช…เชจเซ‡ MIT เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เช›เซ‡.

GitHub เช…เชจเซ‡ เชธเชฎเชพเชจ เชชเชฌเซเชฒเชฟเช• เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชเชฎเชพเช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เช“เชชเชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชจเชพ เชนเชพเชฒเชจเชพ เช•เซ‹เชก เชเชฐเซ‡เชจเซเช‚ เช†เช‚เช•เชกเชพเช•เซ€เชฏ เชฎเซ‹เชกเซ‡เชฒ เชฌเชจเชพเชตเซ€เชจเซ‡ เชธเชฟเชธเซเชŸเชฎ เชธเซเชต-เชถเชฟเช•เซเชทเชฃ เช•เชฐเซ€ เชฐเชนเซ€ เช›เซ‡. เชฒเชฐเซเชจเชฟเช‚เช— เชธเซเชŸเซ‡เชœ เชชเชฐ, เชธเชฟเชธเซเชŸเชฎ เช•เซ‹เชกเชฎเชพเช‚ เชธเซเชŸเซเชฐเช•เซเชšเชฐเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฒเชพเช•เซเชทเชฃเชฟเช• เชชเซ‡เชŸเชฐเซเชจ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช† เชชเซ‡เชŸเชฐเซเชจ เชตเชšเซเชšเซ‡เชจเซ€ เชฒเชฟเช‚เช•เซเชธเชจเซเช‚ เชธเชฟเชจเซเชŸเซ‡เช•เซเชŸเชฟเช• เชŸเซเชฐเซ€ เชฌเชจเชพเชตเซ‡ เช›เซ‡, เชœเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฎเชพเช‚ เช•เซ‹เชก เชเช•เซเชเชฟเช•เซเชฏเซเชถเชจ เชซเซเชฒเซ‹เชจเซ‡ เชชเซเชฐเชคเชฟเชฌเชฟเช‚เชฌเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชเช• เชธเช‚เชฆเชฐเซเชญ เชจเชฟเชฐเซเชฃเชฏ เชตเซƒเช•เซเชท เชฐเชšเชพเชฏ เช›เซ‡ เชœเซ‡ เชคเชฎเชพเชฎ เชตเชฟเชถเซเชฒเซ‡เชทเชฟเชค เชธเซเชคเซเชฐเซ‹เชค เช—เซเชฐเช‚เชฅเซ‹เชจเชพ เชตเชฟเช•เชพเชธเชจเชพ เช…เชจเซเชญเชตเชจเซ‡ เชœเซ‹เชกเซ‡ เช›เซ‡.

เชšเช•เชพเชธเชพเชฏเซ‡เชฒ เช•เซ‹เชก เชชเซ‡เชŸเชฐเซเชจเชจเซ‡ เช“เชณเช–เชตเชพเชจเซ€ เชธเชฎเชพเชจ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชพเชฏ เช›เซ‡ เชœเซ‡ เชธเช‚เชฆเชฐเซเชญ เชจเชฟเชฐเซเชฃเชฏ เชตเซƒเช•เซเชท เชธเชพเชฎเซ‡ เชคเชชเชพเชธเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชชเชกเซ‹เชถเซ€ เชถเชพเช–เชพเช“ เชธเชพเชฅเซ‡ เชฎเซ‹เชŸเซ€ เชตเชฟเชธเช‚เช—เชคเชคเชพเช“ เชคเชชเชพเชธเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพ เชจเชฎเซ‚เชจเชพเชฎเชพเช‚ เชตเชฟเชธเช‚เช—เชคเชคเชพเชจเซ€ เชนเชพเชœเชฐเซ€ เชธเซ‚เชšเชตเซ‡ เช›เซ‡. เชธเชฟเชธเซเชŸเชฎ เชฎเชพเชคเซเชฐ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸเชฎเชพเช‚เชจเซ€ เชญเซ‚เชฒเชจเซ‡ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡ เชœ เชจเชนเซ€เช‚, เชชเชฃ เชธเซเชงเชพเชฐเชฃเชพ เชธเซ‚เชšเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฃ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, OpenSSL เช•เซ‹เชกเชฎเชพเช‚, เชฌเชพเช‚เชงเช•เชพเชฎ โ€œ(s1 == NULL) โˆง (s2 == NULL)โ€ เชฎเชณเซ€ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชœเซ‡ เชธเชฟเชจเซเชŸเซ‡เช•เซเชธ เชŸเซเชฐเซ€เชฎเชพเช‚ เชฎเชพเชคเซเชฐ 8 เชตเช–เชค เชฅเชฏเซเช‚ เชนเชคเซเช‚, เชœเซเชฏเชพเชฐเซ‡ เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡เชจเซ€ เชธเซŒเชฅเซ€ เชจเชœเซ€เช•เชจเซ€ เชถเชพเช–เชพ โ€œ(s1 ==) NULL) || (s2 == NULL)" เชฒเช—เชญเช— 7 เชนเชœเชพเชฐ เชตเช–เชค เช†เชตเซ€. เชธเชฟเชธเซเชŸเชฎเซ‡ เชเช• เชตเชฟเชธเช‚เช—เชคเชคเชพ เชชเชฃ เชถเซ‹เชงเซ€ เช•เชพเชขเซ€ โ€œ(s1 == NULL) | (s2 == NULL)" เชœเซ‡ เชตเซƒเช•เซเชทเชฎเชพเช‚ 32 เชตเช–เชค เช†เชตเซ€.

Intel เช เช•เซ‹เชกเชฎเชพเช‚ เชฌเช— เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡ ControlFlag เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เช•เซ‹เชก เช–เซ‹เชฒเซเชฏเซ‹

เช•เซ‹เชก เชธเซเชจเชฟเชชเซ‡เชŸเชจเซเช‚ เชชเชฆเชšเซเช›เซ‡เชฆเชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ "if (x = 7) y = x;" เชธเชฟเชธเซเชŸเชฎเซ‡ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ "เชšเชฒ == เชธเช‚เช–เซเชฏเชพ" เชฌเชพเช‚เชงเช•เชพเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช†เช‚เช•เชกเชพเช•เซ€เชฏ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชคเซเชฒเชจเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "เชœเซ‹" เชจเชฟเชตเซ‡เชฆเชจเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡, เชคเซ‡เชฅเซ€, เช‰เชšเซเชš เชธเช‚เชญเชพเชตเชจเชพ เชธเชพเชฅเซ‡, "เชœเซ‹" เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเชฎเชพเช‚ เชธเช‚เช•เซ‡เชค "เชšเชฒ = เชธเช‚เช–เซเชฏเชพ" เช†เชจเชพ เช•เชพเชฐเชฃเซ‡ เชฅเชพเชฏ เช›เซ‡ เชเช• เชŸเชพเชˆเชชเซ‹. เชชเชฐเช‚เชชเชฐเชพเช—เชค เชธเซเชฅเชฟเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹ เช†เชตเซ€ เชญเซ‚เชฒเชจเซ‡ เชชเช•เชกเซ€ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเชพเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค, เช•เช‚เชŸเซเชฐเซ‹เชฒ เชซเซเชฒเซ‡เช— เชคเซˆเชฏเชพเชฐ เชจเชฟเชฏเชฎเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซเช‚ เชจเชฅเซ€ เชœเซ‡เชฎเชพเช‚ เชคเชฎเชพเชฎ เชธเช‚เชญเชตเชฟเชค เชตเชฟเช•เชฒเซเชชเซ‹เชจเซ€ เช†เช—เชพเชนเซ€ เช•เชฐเชตเซ€ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฎเซ‹เชŸเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชฎเชพเช‚ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเชพ เชฌเชพเช‚เชงเช•เชพเชฎเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเชพ เช†เช‚เช•เชกเชพ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡. .

เชเช• เชชเซเชฐเชฏเซ‹เช— เชคเชฐเซ€เช•เซ‡, CURL เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€เชจเชพ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชกเชฎเชพเช‚ ControlFlag เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชœเซ‡ เช˜เชฃเซ€เชตเชพเชฐ เช‰เชšเซเชš-เช—เซเชฃเชตเชคเซเชคเชพเชตเชพเชณเชพ เช…เชจเซ‡ เชšเช•เชพเชธเชพเชฏเซ‡เชฒ เช•เซ‹เชกเชจเชพ เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชŸเชพเช‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, "s->keepon" เชธเซเชŸเซเชฐเช•เซเชšเชฐ เชเชฒเชฟเชฎเซ‡เชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชธเซเชฅเชฟเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹ เชฆเซเชตเชพเชฐเชพ เชงเซเชฏเชพเชจ เชจ เช…เชชเชพเชฏเซ‡เชฒเซ€ เชญเซ‚เชฒ เชฎเชณเซ€ เช†เชตเซ€ เชนเชคเซ€, เชœเซ‡ เชธเช‚เช–เซเชฏเชพเชคเซเชฎเช• เชชเซเชฐเช•เชพเชฐ เชงเชฐเชพเชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เชฌเซเชฒเชฟเชฏเชจ เชฎเซ‚เชฒเซเชฏ TRUE เชธเชพเชฅเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. OpenSSL เช•เซ‹เชกเชฎเชพเช‚, "(s1 == NULL) โˆง (s2 == NULL)" เชจเซ€ เช‰เชชเชฐเซ‹เช•เซเชค เชธเชฎเชธเซเชฏเชพ เช‰เชชเชฐเชพเช‚เชค, "(-2 == rv)" เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“เชฎเชพเช‚ เชชเชฃ เชตเชฟเชธเช‚เช—เชคเชคเชพเช“ เชนเชคเซ€ (เชฎเชพเชˆเชจเชธ เชเช• เชŸเชพเช‡เชชเซ‹ เชนเชคเซ€. ) เช…เชจเซ‡ "BIO_puts(bp, ":")

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹