PERL中的内存分配错误

tjrkku2a  于 8个月前  发布在  Perl
关注(0)|答案(1)|浏览(77)

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";
    }

请帮助我了解原因和可能的解决方案。

ilmyapht

ilmyapht1#

散列的大小取决于用户数据的方式有两种。

  • 线的长度。
  • 唯一行的数量。

你的支票只占一个,而不是另一个。
请注意,只有<INFILE>“遭受”“不受控制的内存分配”。如果允许这种情况,那么限制哈希值的大小又有什么意义呢?

相关问题