遗留代码:mmap零页面:不允许操作 - 我应该从哪里开始?

Mar*_*kus 4 c ubuntu gcc mmap segmentation-fault

我要处理旧的 C-源代码.在我设法编译它之后,在运行它时我收到错误消息

mmap zero page: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

有时会出现Segmentation故障.

我已经阅读了一些关于mmap()命令的内容,但我无法解决,这个错误消息来自哪里以及我应该如何处理它.

我可以"重新启用"它吗?(该程序曾用于较旧的Linux系统).

我正在使用Ubuntu 11.04和GCC 3.4

任何提示非常赞赏:-)

谢谢马库斯

caf*_*caf 7

默认情况下,禁用映射零页面作为安全措施(这样做可以使某些NULL指针取消引用错误可利用).

您可以通过将vm.mmap_min_addrsysctl 设置为0(也可在/proc/sys/vm/mmap_min_addr)处重新启用它.您应该可以通过添加vm.mmap_min_addr = 0到Ubuntu来启动它作为默认设置/etc/sysctl.conf.