ื“ื™ LLVM ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื‘ืึทืคืขืจื– ื‘ืขืฉืึธืœืขื ืื™ืŸ C ++

ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคื•ืŸ ื“ื™ LLVM ืคึผืจื•ื™ืขืงื˜ ื”ืึธื‘ืŸ ืคืืจื’ืขืœื™ื™ื’ื˜ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืึทื™ืžืขื“ ืฆื• ืคืืจืฉื˜ืืจืงืŸ ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคื•ืŸ ืžื™ืกื™ืข-ืงืจื™ื˜ื™ืฉ C ++ ืคึผืจืึทื“ื–ืฉืขืงืก ืื•ืŸ ืฆื•ืฉื˜ืขืœืŸ ืึท ืžื™ื˜ืœ ืฆื• ืขืœื™ืžื™ื ื™ืจืŸ ืขืจืจืึธืจืก ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืึธื•ื•ื•ืขืจืจืึทื ื– ืคื•ืŸ ื‘ืึทืคืขืจื–. ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ืคืึธื•ืงื™ืกื˜ ืื•ื™ืฃ ืฆื•ื•ื™ื™ ื’ืขื‘ื™ื˜ืŸ: ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืึท ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืžืึธื“ืขืœ ื•ื•ืึธืก ืึทืœืึทื•ื– ื–ื™ื›ืขืจ ืึทืจื‘ืขื˜ ืžื™ื˜ ื‘ืึทืคืขืจื–, ืื•ืŸ ืืจื‘ืขื˜ืŸ ืฆื• ืคืืจืฉื˜ืืจืงืŸ ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคื•ืŸ ื“ื™ libc ++ ื ืึธืจืžืึทืœ ืคืึทื ื’ืงืฉืึทื ื– ื‘ื™ื‘ืœื™ืึธื˜ืขืง.

ื“ื™ ืคืืจื’ืขืœื™ื™ื’ื˜ ื–ื™ื›ืขืจ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืžืึธื“ืขืœ ืคึฟืึทืจ C ++ ื™ื ื•ื•ืึทืœื•ื•ื– ื ื™ืฆืŸ ืงืœืืกืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ื ืึธืจืžืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื•ื•ืขืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื‘ืึทืคืขืจื– ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ื˜ื™ื ื’ ื ืึทืงืขื˜ ืคึผื•ื™ื ื˜ืขืจื–. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜ ืฆื• ื ื•ืฆืŸ ื“ื™ std :: ืžืขื ื’ืข, std :: ื•ื•ืขืงื˜ืึธืจ ืื•ืŸ std :: ืฉืคึผืึทืŸ ืงืœืืกืŸ, ื•ื•ืึธืก ื•ื•ืขื˜ ืœื™ื™ื’ืŸ ืึท ืœื•ื™ืคืŸ-ืฆื™ื™ื˜ ื˜ืฉืขืง ืคึฟืึทืจ ืื™ื‘ืขืจ-ืึทืœืึธืงืึทื˜ืขื“ ื–ื›ึผืจื•ืŸ.

ืฆื• ืงืึทืžื‘ืึทื˜ ื’ืขืคืขืจืœืขืš ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืคึผืจืึทืงื˜ื™ืกื™ื– ืื™ืŸ ืงืœืึทื ื’, ืขืก ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ืงืึทืžืคึผื™ื™ืœืขืจ ื•ื•ืึธืจื ื™ื ื’ื– ืคึฟืึทืจ ืึทืœืข ื˜ื™ื™ึทื˜ืœ ืึทืจื™ื˜ืžืขื˜ื™ืง ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืขื ืœืขืš ืฆื• ื“ื™ ืงืœืึทื ื’-ืฆื™ื›ื˜ื™ืง ืœื™ื˜ืขืจ ื•ื•ืึธืจื ื™ื ื’ื– ืจืขื–ื•ืœื˜ืึทื˜ ื•ื•ืขืŸ ื ื™ืฆืŸ ื“ื™ "cppcoreguidelines-pro-bounds-pointer-arithmetic" ืคืึธืŸ, ืคึฟืึทืจ ื•ื•ืึธืก ื•ื•ืขื˜ ืฉื˜ื™ืฆืŸ ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ ื“ืขืจ ืžืขืœื“ื•ื ื’ LLVM 16. ืฆื• ื’ืขื‘ืŸ ืึทื–ืึท ื•ื•ืึธืจื ื™ื ื’ื–, ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืคืึธืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืฆื• ืงืœืึทื ื’, ื ื™ื˜ ืึทืงื˜ื™ื•ื• ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜.

ืขืก ืื™ื– ืคึผืœืึทื ื ืขื“ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึทืŸ ืึทืคึผืฉืึทื ืึทืœ ืขื ื›ืึทื ืกื˜ ืฉื•ืฅ ืžืึธื“ืข ืื™ืŸ libc ++, ื•ื•ืึธืก, ื•ื•ืขืŸ ืขื ื™ื™ื‘ืึทืœื“, ื•ื•ืขื˜ ื›ืึทืคึผืŸ ืขื˜ืœืขื›ืข ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ืื™ืŸ ืจื•ื ื˜ื™ืžืข ื•ื•ืึธืก ืคื™ืจืŸ ืฆื• ืึทื ื“ื™ืคื™ื™ื ื“ ื ืึทื˜ื•ืจ. ืฆื•ื ื‘ื™ื™ืฉืคึผื™ืœ, ืื™ืŸ ื“ื™ ืกื˜ื“ :: ืฉืคึผืึทืŸ ืื•ืŸ ืกื˜ื“ :: ื•ื•ืขืงื˜ืึธืจ ืงืœืืกืŸ, ืึท ื–ื™ืงืึธืจืŸ ืึทืงืกืขืก ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜-ืคื•ืŸ-ื‘ืึทื•ื ื“ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืžืึธื ื™ื˜ืึธืจืขื“, ืื•ืŸ ืื•ื™ื‘ ื“ื™ื˜ืขืงื˜ืึทื“, ื“ื™ ืคึผืจืึธื’ืจืึทื ื•ื•ืขื˜ ืงืจืึทืš. ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื’ืœื•ื™ื‘ืŸ ืึทื– ืึทื“ื™ื ื’ ืึทื–ืึท ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืขื˜ ื”ืึทืœื˜ืŸ libc++ ืื™ืŸ ื”ืขืกืงืขื ืžื™ื˜ ื“ื™ C++ ืกื˜ืึทื ื“ืึทืจื“ืก, ื•ื•ื™ื™ึทืœ ื“ื™ ื‘ืจื™ืจื” ืคื•ืŸ ื•ื•ื™ ืฆื• ื”ืึทื ื“ืœืขืŸ ืžื™ื˜ ืงืึทืกืขืก ืคื•ืŸ ืึทื ื“ื™ืคื™ื™ื ื“ ื ืึทื˜ื•ืจ ืœื™ื’ื˜ ืžื™ื˜ ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื“ืขื•ื•ืขืœืึธืคึผืขืจืก, ื•ื•ืึธืก ืงืขืŸ, ืฆื•ื•ื™ืฉืŸ ืื ื“ืขืจืข, ื‘ืื”ืื ื“ืœืขืŸ ืึทื ื“ื™ืคื™ื™ื ื“ ื ืึทื˜ื•ืจ ื•ื•ื™ ืึท ื“ื•ืจื›ืคืึทืœ. ืคึผืจืึธื’ืจืึทื ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ.

ืจื•ื ื˜ื™ืžืข ื˜ืฉืขืงืก ืื™ืŸ libc ++ ื–ืขื ืขืŸ ืคึผืœืึทื ื ืขื“ ืฆื• ื–ื™ื™ืŸ ืฆืขื˜ื™ื™ืœื˜ ืื™ืŸ ืงืึทื˜ืขื’ืึธืจื™ืขืก ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืขื ื™ื™ื‘ืึทืœื“ ื™ื ื“ื™ื•ื•ื™ื“ื–ืฉื•ืึทืœื™. ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคืืจื’ืขืœื™ื™ื’ื˜ ื˜ืฉืขืงืก, ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ืคื™ืจืŸ ืฆื• ืงืึทืžืคึผืœืขืงืกื™ื˜ื™ ืคื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืึธื“ืขืจ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ABI, ื–ืขื ืขืŸ ืฉื•ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื“ื™ libc ++ ื–ื™ื›ืขืจ ืžืึธื“ืข.

ืื™ืŸ ื“ืขืจืฆื•, ืขืก ืื™ื– ืคึผืœืึทื ื ืขื“ ืฆื• ืฆื•ื’ืจื™ื™ื˜ืŸ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืึทื“ื–ืฉืึทืกื˜ื™ื ื’ ื“ื™ ืงืึธื“, ืึทืœืึทื•ื™ื ื’ ืื™ืจ ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืžื™ื˜ ื ืึทืงืขื˜ ืคึผื•ื™ื ื˜ืขืจื– ืžื™ื˜ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ืŸ ื ื•ืฆืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ื”ืึทื ื“ืœืขืจืก ืื™ืŸ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ื•ื•ื• ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืงืขืŸ ื ื™ืฉื˜ ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ ื˜ื™ื™ึทื˜ืœ ื’ืœื™ื™ึทืš (ืœืžืฉืœ, ื“ื™ "ืื•ื™ื‘ (array_pointer)" ื‘ื•ื™ืขืŸ ืงืขื ืขืŸ. ื–ื™ื™ืŸ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืฆื• "if(span.data) ()"). ืึทื“ื–ืฉืึทืกื˜ืžืึทื ืฅ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ืขื ื“ื˜ ื ื™ื˜ ื‘ืœื•ื™ื– ืฆื• ื”ื™ื’ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื–, ืึธื‘ืขืจ ืื•ื™ืš ืคึผืึทืจืึทืžืขื˜ืขืจืก ืคื•ืŸ ื˜ื™ื™ึทื˜ืœ ื˜ื™ื™ืคึผืก.

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

ืงื•ื™ืคืŸ ืคืึทืจืœืึธื–ืœืขืš ื”ืึธืกื˜ื™ื ื’ ืคึฟืึทืจ ื–ื™ื™ื˜ืœืขืš ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก ๐Ÿ”ฅ ืงื•ื™ืคื˜ ืคืึทืจืœืขืกืœืขื›ืข ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ื”ืึธืกื˜ื™ื ื’ ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก | ProHoster