Один BPF-объект, два верификатора, разные вердикты: разбираемся, кто прав
<img src="https://habrastorage.org/getpro/habr/upload_files/429/c6d/ea8/429c6dea821cc460796a66cb8104a671.png" /><p>eBPF-программы проходят статический анализ до загрузки в ядро Linux. Верификатор должен доказать, что программа не выходит за границы памяти, не работает с неверными указателями и не нарушает ограничений, без которых код нельзя безопасно выполнять в ядре. Но если прогнать один объект через разные верификаторы, картина меняется. Один анализатор принимает BPF-объект, а другой считает его небезопасным и запрещает загрузку.</p><p>Именно так и вышло...</p><p>Статья для тех, кто исследует eBPF и статический анализ. Ошибку в программе мы искать не будем — её там нет. Нас интересует другое: почему два верификатора расходятся в выводах.</p> <a href="https://habr.com/ru/articles/1079176/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1079176#habracut">Читать далее</a>
