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.
ps:Cara bersih untuk hanya mendapatkan proses induk?
Tentukan apakah antarmuka jaringan nirkabel atau kabel