pkey_alloc(2) | System Calls Manual | pkey_alloc(2) |
pkey_alloc, pkey_free - alocă sau eliberează o cheie de protecție
Biblioteca C standard (libc, -lc)
#define _GNU_SOURCE /* Consultați feature_test_macros(7) */ #include <sys/mman.h>
int pkey_alloc(unsigned int flags, unsigned int access_rights); int pkey_free(int pkey);
pkey_alloc() alocă o cheie de protecție (pkey) și permite ca aceasta să fie transmisă la pkey_mprotect(2).
Parametrul flags al pkey_alloc() este rezervat pentru utilizare viitoare și, în prezent, trebuie să fie întotdeauna specificat ca fiind 0.
Argumentul pkey_alloc() access_rights poate conține zero sau mai multe operații de dezactivare:
pkey_free() eliberează o cheie de protecție și o face disponibilă pentru alocări ulterioare. După ce o cheie de protecție a fost eliberată, aceasta nu mai poate fi utilizată în nicio operație legată de chei de protecție.
O aplicație nu ar trebui să apeleze pkey_free() pe o cheie de protecție care a fost atribuită unui interval de adrese de către pkey_mprotect(2) și care este încă în uz. Comportamentul în acest caz este nedefinit și poate duce la o eroare.
În caz de succes, pkey_alloc() returnează o valoare pozitivă a cheii de protecție. În caz de succes, pkey_free() returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
pkey_alloc() și pkey_free() au fost adăugate în Linux 4.9; suportul pentru bibliotecă a fost adăugat în glibc 2.27.
Apelurile de sistem pkey_alloc() și pkey_free() sunt specifice Linux.
pkey_alloc() poate fi apelat întotdeauna în siguranță, indiferent dacă sistemul de operare acceptă sau nu chei de protecție. Acesta poate fi utilizat în locul oricărui alt mecanism de detectare a suportului pentru chei de protecție și va eșua pur și simplu cu eroarea ENOSPC dacă sistemul de operare nu suportă chei de protecție.
Nucleul garantează că conținutul registrului de drepturi hardware (PKRU) va fi păstrat numai pentru cheile de protecție alocate. Ori de câte ori o cheie este nealocată (fie înainte de primul apel care returnează cheia respectivă de la pkey_alloc(), fie după ce aceasta este eliberată prin pkey_free()), nucleul poate efectua modificări arbitrare ale părților din registrul de drepturi care afectează accesul la acea cheie.
A se vedea pkeys(7).
pkey_mprotect(2), pkeys(7)
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
4 decembrie 2022 | Pagini de manual de Linux 6.03 |