ื’ื•ื’ืœ ืชืžืžืŸ ืขื‘ื•ื“ื” ืœืฉื™ืคื•ืจ ื”ืื‘ื˜ื—ื” ืฉืœ ืœื™ื‘ืช ืœื™ื ื•ืงืก

ืงืจืŸ ืœื™ื ื•ืงืก ื”ื•ื“ื™ืขื” ืฉื’ื•ื’ืœ ืกื™ืคืงื” ืžื™ืžื•ืŸ ืœืขื‘ื•ื“ื” ืœืฉืžื™ืจื” ืขืœ ืžื ื’ื ื•ื ื™ ืื‘ื˜ื—ื” ื‘ืงืจื ืœ ื”ืœื™ื ื•ืงืก ื•ื—ื™ื–ื•ืง ืื‘ื˜ื—ืช ื”ืœื™ื‘ื”. ื’ื•ืกื˜ื‘ื• ืกื™ืœื‘ื” ื•ื ืชืŸ ืงื ืฆืœืจ ื™ื•ืขืกืงื• ื‘ืžืฉืจื” ืžืœืื”.

ื ืชืŸ ื™ื“ื•ืข ื‘ืขื‘ื•ื“ืชื• ื‘ื”ื‘ื˜ื—ืช ืœื™ื‘ืช ื”ืœื™ื ื•ืงืก ื‘ื ื•ื™ ื‘ืืžืฆืขื•ืช ืžื”ื“ืจ Clang ื•ื‘ืฉื™ืœื•ื‘ ืžื ื’ื ื•ื ื™ ื”ื’ื ื” ื‘ื–ืžืŸ ืงื•ืžืคื™ืœืฆื™ื” ื›ื’ื•ืŸ CFI (Control Flow Integrity) ื‘ื‘ื ื™ื™ื”. ืขื‘ื•ื“ืชื• ื”ืขืชื™ื“ื™ืช ืฉืœ ื ืชืŸ ื‘ืฉืœื‘ ื”ืจืืฉื•ืŸ ืชืชืžืงื“ ื‘ื‘ื™ื˜ื•ืœ ื›ืœ ื”ืฉื’ื™ืื•ืช ืฉืฆืฆื•ืช ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-Clang/LLVM, ื•ื”ื˜ืžืขืช ืžืขืจื›ืช ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื” ืœื‘ื“ื™ืงืช ืžื‘ื ื™ื ืžื‘ื•ืกืกื™ Clang. ืœืื—ืจ ืคืชืจื•ืŸ ื”ื‘ืขื™ื•ืช ื”ื™ื“ื•ืขื•ืช, ืชืชื—ื™ืœ ื”ืขื‘ื•ื“ื” ืœื”ื•ืกื™ืฃ ืฉื™ืคื•ืจื™ ืื‘ื˜ื—ื” ื ื•ืกืคื™ื ืฉืกื•ืคืงื• ืขืœ ื™ื“ื™ ืžื”ื“ืจ Clang ืœืงืจื ืœ.

ื’ื•ืกื˜ื‘ื• ื”ื•ื ืื—ื“ ื”ืžืฉืชืชืคื™ื ื”ืคืขื™ืœื™ื ื‘ืคืจื•ื™ืงื˜ KSPP (ืคืจื•ื™ืงื˜ ื”ื’ื ื” ืขืฆืžื™ืช ืฉืœ ืœื™ื‘ื”) ืœืงื™ื“ื•ื ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื”ื’ื ื” ืืงื˜ื™ื‘ื™ื•ืช ืœืชื•ืš ืœื™ื‘ืช ืœื™ื ื•ืงืก. ื”ืžืฉื™ืžื” ื”ืขื™ืงืจื™ืช ืฉืœ ื’ื•ืกื˜ื‘ื• ืชื”ื™ื” ืœื—ืกืœ ืžื—ืœืงื•ืช ืžืกื•ื™ืžื•ืช ืฉืœ ื”ืฆืคืช ืžืื’ืจ ืขืœ ื™ื“ื™ ื”ื—ืœืคืช ื›ืœ ื”ืžื•ืคืขื™ื ืฉืœ ืžืขืจื›ื™ื ื‘ืขืœื™ ืื•ืจืš ืืคืก ืื• ื”ืžื›ื™ืœื™ื ืจืง ืืœืžื ื˜ ืื—ื“ ืขื ื”ืฆื”ืจืช ืžืขืจืš ื—ืกืจืช ืžืžื“ื™ื (Flexible Array Member). ื‘ื ื•ืกืฃ, ื’ื•ืกื˜ื‘ื• ื™ื”ื™ื” ืžืขื•ืจื‘ ื‘ืชื™ืงื•ืŸ ืฉื’ื™ืื•ืช ื‘ืงื•ื“ ืœืคื ื™ ืฉื”ื•ื ื ื›ื ืก ืœื—ืœืง ื”ืขื™ืงืจื™ ืฉืœ ื”ืœื™ื‘ื”, ื•ื‘ืคื™ืชื•ื— ืžื ื’ื ื•ื ื™ ื”ื’ื ื” ืืงื˜ื™ื‘ื™ื™ื ื‘ืงืจื ืœ.

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

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