GNU/Linux >> Belajar Linux >  >> Linux

Apa gunanya menggunakan makro linux access_ok()

Jika __lddk_copy_from_user() cukup panggil copy_from_user() , lalu access_ok() cek berlebihan, karena copy_from_user() melakukan pemeriksaan ini sendiri.

access_ok() pemeriksaan memastikan bahwa aplikasi userspace tidak meminta kernel untuk membaca dari atau menulis ke alamat kernel (itu adalah pemeriksaan integritas/keamanan). Hanya karena sebuah pointer disediakan oleh userspace tidak berarti bahwa itu pasti pointer userspace - dalam banyak kasus "kernel pointer" hanya berarti bahwa itu menunjuk ke dalam wilayah tertentu dari ruang alamat virtual.

Selain itu, memanggil access_ok() dengan VERIFY_WRITE menyiratkan VERIFY_READ , jadi jika Anda mencentang yang pertama, Anda juga tidak perlu mencentang yang terakhir.

Mulai komit ini pada tahun 2019, access_ok() tidak lagi memiliki type argumen, jadi VERIFY_WRITE versus VERIFY_READ intinya diperdebatkan.


Linux
  1. Apa tujuan dari file .bashrc di Linux?

  2. Apa perbedaan antara menggunakan _exit() &exit() di Linux fork-exec konvensional?

  3. Apa gunanya mengenkripsi direktori home?

  1. Apa yang membuat Linux menjadi OS yang berkelanjutan

  2. Linux vs. Unix:Apa bedanya?

  3. Memecahkan masalah menggunakan sistem file proc di Linux

  1. Apa yang membuat komunitas Linux istimewa?

  2. Apa itu Rolling Release Linux dan Apa Manfaat Nyata Menggunakannya

  3. Apa runlevel sistem Linux saat ini?