专栏名称: 码小辫
给程序员和编程爱好者分享计算机编程电子书以及相关的学习资源
目录
相关文章推荐
新智元  ·  SIGGRAPH ... ·  昨天  
爱可可-爱生活  ·  【[418星]AI-angineers-ha ... ·  昨天  
机器学习研究组订阅  ·  史上最大AI投资?小扎百亿重金押注Scale ... ·  2 天前  
51好读  ›  专栏  ›  码小辫

美团二面:为什么mmap共享内存比malloc危险?

码小辫  · 公众号  ·  · 2025-06-01 17:10

正文

请到「今天看啥」查看全文


(共享内存/文件映射)。

虽然两者都能提供内存分配的能力,但从 系统风险 的角度来看, mmap 共享内存比 malloc 更加危险,稍有不慎就可能引发严重的安全漏洞或稳定性问题。

mmap共享内存可能导致其它进程崩溃

mmap 可以让多个进程直接读写同一块物理内存,这意味着一个进程的错误操作可能直接影响其他进程的数据,甚至导致崩溃。比如进程A的越界写入可能导致进程B崩溃或读取到损坏的数据。

一句话,共享内存破坏了进程间的内存隔离。

而如果使用 malloc ,这种越界写入最多只会影响当前进程,不会跨进程传播错误。因为 malloc 分配的内存仅在当前进程内有效,天然具备隔离性,其他进程无法直接访问。

mmap的权限风险

mmap 可以设置内存的读写/执行权限(如 PROT_EXEC ),如果错误配置可能被黑客利用进行 代码注入攻击 (如缓冲区溢出后执行恶意代码)。

假设有一个网络服务程序,使用 mmap 分配了一块内存用于处理客户端请求,并错误地赋予了可执行权限( PROT_EXEC







请到「今天看啥」查看全文