请选择 进入手机版 | 继续访问电脑版

专注代码检测 - 阅镜

 找回密码
 立即注册
热搜: 安装 代码
查看: 121|回复: 0

建议不得直接使用刚分配的未初始化的内存(如realloc)

[复制链接]

70

主题

70

帖子

232

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
232
发表于 2021-9-10 19:50:45 | 显示全部楼层 |阅读模式
一些刚申请的内存通常是直接从堆上分配的,可能包含有旧数据的,直接使用它们而不初始化,可能会导致安全问题。例如,CVE-2019-13751。应确保初始化变量,或者确保未初始化的值不会泄露给用户。

  1. // Bad
  2. char* Foo() {
  3.   char* a = new char[100];
  4.   a[99] = '\0';
  5.   memcpy(a, "char", 4);
  6.   return a;
  7. }
复制代码
  1. // Good
  2. char* Foo() {
  3.   char* a = new char[100];
  4.   memcpy(a, "char", 4);
  5.   a[4] = '\0';
  6.   return a;
  7. }
复制代码

在 C++ 中,再次强烈推荐用  string 、 vector  代替手动内存分配。

关联漏洞:
  1.   中风险-逻辑问题
  2.   中风险-信息泄漏
复制代码
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ|Archiver|手机版|小黑屋| 阅镜 ( 京ICP备2020034574号 )|网站地图|网站地图点击这里给我发消息

GMT+8, 2022-1-17 09:08 , Processed in 0.275513 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表