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

专注代码检测 - 阅镜

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

注意八进制问题

[复制链接]

70

主题

70

帖子

232

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
232
发表于 2021-9-10 14:17:32 | 显示全部楼层 |阅读模式
代码对齐时应当使用空格或者编辑器自带的对齐功能,谨慎在数字前使用0来对齐代码,以免不当将某些内容转换为八进制。

例如,如果预期为20字节长度的缓冲区,则下列代码存在错误。buf2为020(OCT)长度,实际只有16(DEC)长度,在memcpy后越界:

  1. // Bad
  2. char buf1[1024] = {0};
  3. char buf2[0020] = {0};

  4. memcpy(buf2, somebuf, 19);
复制代码

应当在使用8进制时明确注明这是八进制。

  1. // Good
  2. int access_mask = 0777;  // oct, rwxrwxrwx
复制代码

关联漏洞:
  1.   中风险-逻辑漏洞
复制代码

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-1-17 10:02 , Processed in 0.059693 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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