Checkmarx,一个静态分析工具,抛出了下面代码的安全问题,说$file_list正在访问不受控制的内存分配。
open ( INFILE, "<", "$inputfile" ) || die( "Cannot read list file $inputfile" );
while ( <INFILE> )
{
$file = $_;
chomp ( $file );
$file_list{$file} = "1";
}
我试图限制哈希变量的大小,如下所述,但错误没有得到解决。
if(length($file) <= (1 * 1024 * 1024))
{
$file_list{$file} = "1";
}
请帮助我了解原因和可能的解决方案。
1条答案
按热度按时间ilmyapht1#
散列的大小取决于用户数据的方式有两种。
你的支票只占一个,而不是另一个。
请注意,只有
<INFILE>
“遭受”“不受控制的内存分配”。如果允许这种情况,那么限制哈希值的大小又有什么意义呢?