给定一个不受信任的内存地址,Linux 中是否有一种方法可以测试它是否指向有效的、可访问的内存?
例如,在 mach 中,您可以使用 vm_read_overwrite() 尝试从指定位置复制数据。如果地址无效或不可访问,它将返回错误代码而不是使进程崩溃。
最佳答案
write
从该内存(到 /dev/null
,例如(编辑:使用 /dev/null
它可能无法正常工作预期,使用管道)),如果地址不可访问,您将收到 EFAULT
错误。
如果 可写,我不知道如何在不破坏其内容的情况下测试可写 内存。
关于linux - 在 Linux 中测试内存是否可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14507524/