GNU/Linux >> Tutoriels Linux >  >> Linux

Quel est l'intérêt d'utiliser la macro linux access_ok()

Si __lddk_copy_from_user() appelle simplement copy_from_user() , puis le access_ok() les vérifications sont redondantes, car copy_from_user() effectue lui-même ces vérifications.

Le access_ok() Les contrôles garantissent que l'application de l'espace utilisateur ne demande pas au noyau de lire ou d'écrire dans les adresses du noyau (il s'agit d'un contrôle d'intégrité/sécurité). Ce n'est pas parce qu'un pointeur a été fourni par l'espace utilisateur qu'il s'agit définitivement d'un pointeur d'espace utilisateur - dans de nombreux cas, "pointeur noyau" signifie simplement qu'il pointe dans une région particulière de l'espace d'adressage virtuel.

De plus, en appelant le access_ok() avec VERIFY_WRITE implique VERIFY_READ , donc si vous cochez la première, vous n'avez pas besoin de vérifier également la seconde.

À partir de ce commit en 2019, access_ok() n'a plus le type argument, donc le VERIFY_WRITE contre VERIFY_READ point est discutable.


Linux
  1. Ce qui fait de Linux le système d'exploitation durable

  2. Qu'est-ce qui rend la communauté Linux spéciale ?

  3. Dépannage à l'aide du système de fichiers proc sous Linux

  4. Qu'est-ce qu'une Rolling Release Linux et quel est le véritable avantage de l'utiliser

  5. Quel est le niveau d'exécution actuel du système Linux ?

Utilisation de la commande gratuite Linux

Qu'est-ce que la commande Linux Watch + Exemples

Qu'est-ce que le Shell sous Linux ?

Tutoriel sur l'utilisation de la commande Timeout sous Linux

Qu'est-ce que la commande kill sous Linux ?

Comment déterminer ce qui utilise le plus d'espace disque sur un serveur Linux ?