На какой именно операционной системе вы это используете?
Цитата из справочника Mac Hacker:
Leopard не устанавливает бит XD ни на какие части памяти, кроме
стек. Неясно, является ли это ошибкой, недосмотром или преднамеренным,
но даже если разрешения программного обеспечения памяти установлены на
неисполнимый, вы все равно можете выполнить где угодно, кроме стека.
следующая простая программа иллюстрирует эту точку зрения.
[ваш фрагмент следует]
(Акцент мой.)
Код должен сбиваться, если права установлены на неисполнимые (или если права вообще опущены). Это не было на Леопарде, который даже автор подвергает сомнению. То, что вы заметили, является совершенно нормальным поведением для современной ОС.
Я бы добавил: попробуйте запустить его через отладчик. \xeb\xfe
- это бесконечный цикл, но технически вы не должны даже цикл один раз. ОС должна шлепнуть вас по запястью (что, видимо, здесь и происходит).