Man page - pkey_free(2)

Packages contains this manual

Available languages:

en fr ru ro

Manual

pkey_alloc

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

pkey_alloc, pkey_free - allouer ou libérer une clé de protection

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#define _GNU_SOURCE /* Consultez feature_test_macros(7) */
#include <sys/mman.h>

int pkey_alloc(unsigned int flags , unsigned int access_rights );
int pkey_free(int
pkey );

DESCRIPTION

pkey_alloc () alloue une clĂ© de protection (pkey) et lui permet d’ĂȘtre transmise Ă  pkey_mprotect (2).

L’ argument de pkey_alloc () est rĂ©servĂ© Ă  une utilisation future et doit toujours valoir 0 actuellement.

Le paramÚtre access_rights de pkey_alloc () peut contenir zéro ou plusieurs opérations désactivées :
PKEY_DISABLE_ACCESS

Désactiver tous les accÚs aux données de la mémoire gérée par la clé de protection renvoyée.

PKEY_DISABLE_WRITE

DĂ©sactiver l’accĂšs en Ă©criture Ă  la mĂ©moire gĂ©rĂ©e par la clĂ© de protection renvoyĂ©e.

pkey_free () libĂšre une clĂ© de protection et la rend disponible pour de futures allocations. AprĂšs qu’une clĂ© de protection a Ă©tĂ© libĂ©rĂ©e, elle ne peut plus ĂȘtre utilisĂ©e dans aucune opĂ©ration de protection liĂ©e Ă  une clĂ©.

Une application ne doit pas appeler pkey_free () sur une clĂ© de protection qui a Ă©tĂ© affectĂ©e Ă  une plage d’adresses par pkey_mprotect (2) et en cours d’utilisation. Dans ce cas, le comportement n’est pas dĂ©fini et peut aboutir Ă  une erreur.

VALEUR RENVOYÉE

En cas de succĂšs, pkey_alloc () renvoie une valeur positive de clĂ© de protection. En cas de succĂšs, pkey_free () renvoie zĂ©ro. En cas d’erreur, -1 est renvoyĂ© et errno est dĂ©fini pour prĂ©ciser l’erreur.

ERREURS

EINVAL

pkey , flags ou access_rights n’est pas valable.

ENOSPC

( pkey_alloc ()) Toutes les clĂ©s de protection disponibles pour le processus actuel ont Ă©tĂ© allouĂ©es. Le nombre de clĂ©s disponibles est spĂ©cifique Ă  l’architecture et Ă  l’implĂ©mentation, il peut ĂȘtre rĂ©duit par une utilisation interne du noyau de certaines clĂ©s. Il y a actuellement 15 clĂ©s disponibles pour les programmes de l’utilisateur sur x86.

Cette erreur sera aussi renvoyĂ©e si le processeur ou le systĂšme d’exploitation ne gĂšre pas les clĂ©s de protection. Les applications doivent toujours ĂȘtre prĂȘtes Ă  gĂ©rer cette erreur, puisque des facteurs hors de contrĂŽle de l’application peuvent rĂ©duire le nombre de clĂ©s disponibles.

STANDARDS

Linux.

HISTORIQUE

Linux 4.9, glibc 2.27.

NOTES

Il est toujours sĂ»r d’appeler pkey_alloc (), que le systĂšme d’exploitation gĂšre ou non les clĂ©s de protection. Il peut ĂȘtre utilisĂ© Ă  la place de tout autre mĂ©canisme de dĂ©tection de gestion de pkey et il Ă©chouera simplement avec l’erreur ENOSPC si le systĂšme d’exploitation ne gĂšre pas pkey.

Le noyau s’assure que le contenu des registres de droits du matĂ©riel (PKRU) ne sera conservĂ© que pour les clĂ©s de protection allouĂ©es. À chaque fois qu’une clĂ© n’est plus allouĂ©e (soit avant le premier appel renvoyant la clĂ© Ă  partir de pkey_alloc (), soit aprĂšs sa libĂ©ration par pkey_free ()), le noyau peut effectuer des modifications arbitraires dans certaines parties du registre des droits concernant l’accĂšs Ă  cette clĂ©.

EXEMPLES

Consultez pkeys (7).

VOIR AUSSI

pkey_mprotect (2), pkeys (7)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .