☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

指针加减偏移量时计入 sizeof 是可疑的

10.7.5 ID_sizeof_suspiciousAdd
目录 › next › previous

指针加减偏移量时会自动计入指针指向类型的大小,如果再计入 sizeof 的值,很可能是某种错误。

示例:

int foo(int* p, int i) {
    return *(p + i * sizeof(int));   // Rather suspicious
}

如果 foo 函数是为了获取指针 p 之后第 i 个整数的值,那么这种实现是错误的,应改为:

int foo(int* p, int i) {
    return *(p + i);       // Right
}

依据

ISO/IEC 9899:1999 6.5.6(8) ISO/IEC 9899:2011 6.5.6(8)

参考

CWE-468
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.