CXX.REALLOC

realloc() の使用は避けてください

標準の realloc() 関数は、既存のデータを消去したり、位置合わせを考慮したりせずに、メモリを新しいメモリブロックに移動します。

脆弱性とリスク

realloc() が一度使用されると、既存のデータはメモリから削除されず、プログラム内でアクセスできなくなります。これは、潜在的なセキュリティ上の脆弱性をもたらす可能性があります。さらに、元のメモリ割り当てでアライメントが使用されていた場合、新しく割り当てられたメモリ位置にはそれが反映されないことになります。

軽減と防止

機密データの場合は、新しいメモリに移動するときに、既存のデータを消去するためのプロセスが用意されていることを確認してください。

元のメモリ割り当てでアライメントが使用されている場合は、新しいメモリ割り当てでそのアライメントが反映されることを確認してください。これは realloc() では達成できず、元の割り当てで使用された可能性のある別のツールを使用する必要があります。