GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el punto de usar la macro de Linux access_ok ()

Si __lddk_copy_from_user() simplemente llama a copy_from_user() , luego el access_ok() las comprobaciones son redundantes, porque copy_from_user() realiza estas comprobaciones por sí mismo.

El access_ok() Las comprobaciones garantizan que la aplicación del espacio de usuario no le pida al núcleo que lea o escriba en las direcciones del núcleo (son una comprobación de integridad/seguridad). El hecho de que el espacio de usuario haya proporcionado un puntero no significa que sea definitivamente un puntero de espacio de usuario; en muchos casos, "puntero del kernel" simplemente significa que apunta dentro de una región particular del espacio de direcciones virtuales.

Además, llamar a access_ok() con VERIFY_WRITE implica VERIFY_READ , por lo que si marca lo primero, no es necesario que marque también lo segundo.

A partir de este compromiso en 2019, access_ok() ya no tiene el type argumento, entonces el VERIFY_WRITE contra VERIFY_READ el punto es discutible.


Linux
  1. ¿Qué hace que la comunidad de Linux sea especial?

  2. Linux vs Unix:¿Cuál es la diferencia?

  3. Solucionar problemas con el sistema de archivos proc en Linux

  4. ¿Cuál es el propósito del archivo .bashrc en Linux?

  5. ¿Cuál es la definición de una sesión en Linux?

Usando el comando libre de Linux

¿Qué es el comando Watch de Linux + ejemplos?

¿Qué es el Shell en Linux?

Tutorial sobre el uso del comando Timeout en Linux

¿Qué es el comando matar en Linux?

¿Cómo determinar qué está utilizando la mayor cantidad de espacio en disco en un servidor Linux?