Устаревший код: нулевая страница mmap: операция не разрешена - с чего мне начать? - PullRequest
4 голосов
/ 26 июля 2011

Мне приходится иметь дело с старым C- исходным кодом. После того, как мне удалось скомпилировать его, во время его работы я получаю сообщение об ошибке

mmap zero page: Operation not permitted

Иногда за этим следует Ошибка сегментации .

Я прочитал кое-что о команде mmap (), но не могу обойти, откуда пришло это сообщение об ошибке и как мне с ним бороться.

Могу ли я "включить" это? (Программа, используемая для работы с более старой системой Linux).

Я работаю с Ubuntu 11.04 и GCC 3.4

Любые советы очень ценятся: -)

спасибо Markus

1 Ответ

7 голосов
/ 26 июля 2011

Отображение нулевой страницы по умолчанию отключено в качестве меры безопасности (это может сделать некоторые ошибки NULL разыменования указателя уязвимыми).

Вы можете повторно включить его, установив vm.mmap_min_addr sysctl в 0 (также доступно в /proc/sys/vm/mmap_min_addr). Вы должны сделать это по умолчанию при загрузке в Ubuntu, добавив vm.mmap_min_addr = 0 к /etc/sysctl.conf.

...