GNU/Linux >> Linux の 問題 >  >> Linux

Linux マクロ access_ok() を使用するポイントは何ですか?

__lddk_copy_from_user() の場合 copy_from_user() を呼び出すだけです 、次に access_ok() copy_from_user() であるため、チェックは冗長です。 これらのチェック自体を実行します。

access_ok() チェックは、ユーザー空間アプリケーションがカーネルにカーネルアドレスからの読み取りまたは書き込みを要求していないことを確認します (これらは整合性/セキュリティチェックです)。ポインターがユーザー空間によって提供されたからといって、それが間違いなくユーザー空間ポインターであることを意味するわけではありません。多くの場合、「カーネル ポインター」は単に、仮想アドレス空間の特定の領域内を指していることを意味します。

さらに、access_ok() を呼び出す VERIFY_WRITEVERIFY_READ を意味します であるため、前者を確認した場合、後者も確認する必要はありません。

2019 年のこのコミットの時点で、access_ok() type はもうありません 引数なので、VERIFY_WRITEVERIFY_READ ポイントは論外です。


Linux
  1. Linuxを持続可能なOSにする理由

  2. Linuxコミュニティが特別な理由は何ですか?

  3. LinuxとUnix:違いは何ですか?

  1. Linuxでprocファイルシステムを使用してトラブルシューティングする

  2. Linuxシステムの現在のランレベルはどれくらいですか?

  3. Linuxでのセッションの定義は何ですか?

  1. Linux ソートのデフォルトの順序は何ですか?

  2. ディストリビューションが最新の Linux カーネルを使用できない原因は何ですか?

  3. サブシェルを使用するオーバーヘッドはどのくらいですか?