GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der Sinn der Verwendung des Linux-Makros access_ok()

Wenn __lddk_copy_from_user() ruft einfach copy_from_user() auf , dann die access_ok() Prüfungen sind überflüssig, weil copy_from_user() führt diese Prüfungen selbst durch.

Die access_ok() Prüfungen stellen sicher, dass die Userspace-Anwendung den Kernel nicht auffordert, Kerneladressen zu lesen oder in sie zu schreiben (es handelt sich um eine Integritäts-/Sicherheitsprüfung). Nur weil ein Zeiger vom Userspace bereitgestellt wurde, bedeutet das nicht, dass es definitiv ein Userspace-Zeiger ist - in vielen Fällen bedeutet "Kernel-Zeiger" einfach, dass er in einen bestimmten Bereich des virtuellen Adressraums zeigt.

Zusätzlich Aufruf von access_ok() mit VERIFY_WRITE impliziert VERIFY_READ , wenn Sie also Ersteres aktivieren, müssen Sie Letzteres nicht ebenfalls aktivieren.

Ab diesem Commit im Jahr 2019 access_ok() hat den type nicht mehr Argument, also VERIFY_WRITE gegenüber VERIFY_READ Punkt ist strittig.


Linux
  1. Was Linux zum nachhaltigen Betriebssystem macht

  2. Was macht die Linux-Community besonders?

  3. Linux vs. Unix:Was ist der Unterschied?

  4. Was ist ein Rolling Release Linux und was ist der wirkliche Vorteil seiner Verwendung?

  5. Was bringt es, das Home-Verzeichnis zu verschlüsseln?

Verwenden des kostenlosen Linux-Befehls

Was ist der Linux-Überwachungsbefehl + Beispiele

Was ist die Shell unter Linux?

Tutorial zur Verwendung des Timeout-Befehls unter Linux

Was ist der Kill-Befehl in Linux?

Wie kann festgestellt werden, was auf einem Linux-Server den meisten Speicherplatz belegt?