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í.
ps:Čistý způsob, jak získat pouze rodičovské procesy?
Určete, zda je síťové rozhraní bezdrátové nebo kabelové