Helpers - компьютеры, интернет, программирование

Переполнение стека в QEMU, на котором размещено ядро ​​с поддержкой MTE, не вызывает ошибку

Я тестирую переполнение стека с Linux 5.10 и qemu 5.2.93. Он также не может обнаружить переполнение стека. Вот мой образец примера

#include <stdio.h>

int main(int argc, char** argv)
{
    volatile char pad[10];
    char s[10];
    for(int i=0; i<atoi(argv[1]); i++)
    {
        s[i] = i;
    }
    return 0;
}

Я компилирую его с clang-13

clang -target aarch64-linux -march=armv8+memtag -fuse-ld=lld stack.c -o stack -fsanitize=memtag -static

Я запускаю qemu с простой файловой системой

qemu-system-aarch64 -machine virt,mte=on -cpu max -kernel ./linux/arch/arm64/boot/Image -nographic -append "console=ttyAMA0" -m 1024 -initrd ./filesystem.cpio.gz -net nic -monitor /dev/null

а также

./stack 17

Ничего не происходит.

Или кто-нибудь может сказать мне, как запустить это на мониторе fvp. Я также использую ядро ​​с поддержкой MTE, версия fvp 11.8.37. И включаю fvp mte с -C cluster0.memory_tagging_support_level=2. После всего этого также ничего не произошло с вышеуказанной программой переполнения стека.

26.04.2021

  • Вы запускаете linux guest в qemu и когда он загружается, запускаете вашу программу с аргументом более 10? 26.04.2021
  • Я также тестирую с ./stack 11, и результат тот же. И я думаю, что MTE пометит память с выравниванием по 16 байтам, поэтому я тестирую ее с 17. 27.04.2021
  • Вы запускали свой бинарный файл на хосте? Это крах? 27.04.2021
  • Я собираюсь сделать то же предложение, что и для очень похожего вопроса здесь: stackoverflow.com/questions/67071289/ -- попробуйте пример программы MTE из документации ядра. Это скажет вам, находится ли проблема в ядре/эмуляторе или проблема в том, что clang не делает то, что вы ожидаете. 27.04.2021
  • @nevilad Host - это Ubuntu X86_64, которая, очевидно, не поддерживает MTE и никогда не должна падать. 28.04.2021
  • @PeterMaydell Большое спасибо, я протестировал пример программы MTE из документации ядра, и она работает, похоже, необходимо включить PROT_MTE в памяти. Я просматриваю приведенный выше вопрос и пропустил это предложение. Спасибо, что ответили мне снова. 28.04.2021
  • Точно, это же нашел и другой вопрошавший. Я думаю, что лязг просто ведет себя не так, как вы или они ожидали. Вероятно, было бы неплохо спросить об этом в списке рассылки clang или подобном месте. 28.04.2021

Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..