私はオンラインジャッジのコード安全性プロジェクトに取り組んでいます。 1つの脆弱性は、誰かが次のようなコードをアップロードした場合です。#include "/ dev/whatever"にスタックされていません
#include "/dev/stdin"
#include "/proc/self/fd/0"
#include <stdio.h>
// Other legitimate code
私はそれを再現しようとしています。 gcc foo.c
でコンパイルすると、gccがスタックし、EOF(Ctrl-D)が期待どおりになるまで端末から読み込みます。私がclang foo.c
の時、何も起こらなかった。 Clangは、行が存在しなかったかのように振る舞います。次に、これらのコードを試しました:
#include "/dev/zero"
#include "/dev/random"
#include "/dev/ram"
まだ運がありません。なぜClangはこれらすべてを無視するのですか?どうすればClangを#include
に貼り付けることができますか?
"なぜClangはこれらすべてを無視しますか?"何故なの? –