update-grubコマンドを実行しようとすると、非常に奇妙な出力が表示されます。
update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.9.0-6-amd64
Found initrd image: /boot/initrd.img-4.9.0-6-amd64
Found linux image: /boot/vmlinuz-4.9.0-4-amd64
Found initrd image: /boot/initrd.img-4.9.0-4-amd64
File descriptor 7 (pipe:[33660]) leaked on lvs invocation. Parent PID 7587: /bin/sh
done
この問題を解決する必要があります。このようなメッセージが表示される原因は何ですか?
答え1
update-grub
これらの警告は、コードとバイナリlvs
の間に「整理されていない」部分があることを指摘しています。lvs
つまり、標準ファイル記述子(0、1、2)ではなく、開かれたファイル記述子(7)が継承されます。すべての記述子をすぐに閉じて警告を印刷します(LVM_SUPPRESS_FD_WARNINGS
環境変数を介して抑制できます)。サブプロセスが不必要にファイル記述子を継承できるようにすることは、脆弱性を悪用する可能性があるステートメントを開くため、悪いコーディング慣行です。したがって、この場合、セキュリティ(または正確さ)に影響がない場合でも、ここでは確実に修正する必要がある部分があります。