Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - 🇺🇦 Комора Лінуксоїда | Linux
Added 14 Jul 2024 🌐 UK

🇺🇦 Комора Лінуксоїда | Linux

@linux_ukraine
Number of subscribers: 964
Photos: 696
Videos: 117
Links: 1,180
Description:
Все про *nix та IT українською! https://tlp-media.github.io Чат: @unix_ukraine Адмін: @herbstluft
Source

🇺🇦 Комора Лінуксоїда | Linux | У конфігураційних файлах curl випадково реалізовано повноту за Тюрінго...

Telegram community logo - 🇺🇦 Комора Лінуксоїда | Linux 🇺🇦 Комора Лінуксоїда | Linux @linux_ukraine
414 Views/Reach 2026-11-04 16:23 Message №1838
У конфігураційних файлах curl випадково реалізовано повноту за Тюрінгом

Ця особливість проявляється лише у версіях Curl з 8.12 по 8.16 і зумовлена ненавмисною реалізацією повноти за Тьюрингом, що дозволяє створювати машини Тьюринга, використовуючи можливість вилучати байтові діапазони зі значень змінних та необмежену глибину вкладеності під час підключення зовнішніх конфігураційних файлів.

Як приклад, за допомогою Curl було реалізовано симуляцію роботи дволічильникової регістрової машини (машини Мінського) для додавання чисел та реалізації програми "99 пляшок пива", яка використовується під час навчання роботі з циклами.

На практиці обчислювальні можливості, що реалізуються через файли конфігурації, обмежені розміром стека, оскільки кожен крок виконання програми вимагає завантаження нового вкладеного файлу конфігурації.

При стеку в 8 МБ переповнення виникає приблизно після 922 кроків. На можливості також впливає обмеження на розмір розгортаних змінних (параметр MAX_EXPAND_CONTENT встановлено на 10 МБ) та велике споживання пам’яті через збереження всіх старих версій змінних.