CodeQL 文档

数组参数大小不匹配

ID: cpp/array-arg-size-mismatch
Kind: problem
Security severity: 
Severity: warning
Precision: high
Tags:
   - reliability
Query suites:
   - cpp-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

此规则查找函数调用,其中传递的数组大小小于函数声明的数组参数大小。这很可能导致对传递数组边界之外的内存进行访问。

传递的数组大小很可能是错误的,因为它与函数参数的大小不匹配。

建议

检查传递给函数的数组是否正确,或者修改其大小以匹配函数的数组参数大小。

示例

//Function foo's array parameter has a specified size
void foo(int a[10]) {
	int i = 0;
	for (i = 0; i <10; i++) {
		a[i] = i * 2;
	}
}

...

int my_arr[5];
foo(my_arr); //my_arr is smaller than foo's array parameter, and will cause access to memory outside its bounds
  • ©GitHub, Inc.
  • 条款
  • 隐私