GNU/Linux >> Znalost Linux >  >> Linux

Jaký je smysl použití linuxového makra access_ok()

Pokud __lddk_copy_from_user() jednoduše zavolá copy_from_user() a poté access_ok() kontroly jsou nadbytečné, protože copy_from_user() tyto kontroly provádí sám.

access_ok() kontroly zajišťují, že aplikace v uživatelském prostoru nepožaduje jádro, aby četlo z adres jádra nebo na ně zapisovalo (jedná se o kontrolu integrity/zabezpečení). To, že ukazatel poskytl uživatelský prostor, neznamená, že je to rozhodně ukazatel uživatelského prostoru – v mnoha případech „ukazatel jádra“ jednoduše znamená, že ukazuje v určité oblasti virtuálního adresového prostoru.

Navíc volání access_ok() s VERIFY_WRITE znamená VERIFY_READ , takže pokud zaškrtnete první, nemusíte kontrolovat i druhé.

Od tohoto potvrzení v roce 2019 access_ok() nemá dlouho type argument, takže VERIFY_WRITE oproti VERIFY_READ bod je diskutabilní.


Linux
  1. Jaký je účel souboru .bashrc v Linuxu

  2. Jaký je rozdíl mezi použitím _exit() &exit() v konvenčním linuxovém fork-exec?

  3. Jaká je definice relace v linuxu?

  1. Co dělá Linux udržitelným OS

  2. Jaký má smysl šifrování domovského adresáře?

  3. Jaká je režie používání subshellů?

  1. Čím je linuxová komunita výjimečná?

  2. Linux vs. Unix:Jaký je rozdíl?

  3. Odstraňte problémy s použitím souborového systému proc na Linuxu