# French translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Christophe Blaess , 1996-2003. # Stéphan Rafin , 2002. # Thierry Vignaud , 1999, 2002. # François Micaux, 2002. # Alain Portal , 2003-2008. # Jean-Philippe Guérard , 2005-2006. # Jean-Luc Coulon (f5ibh) , 2006-2007. # Julien Cristau , 2006-2007. # Thomas Huriaux , 2006-2008. # Nicolas François , 2006-2008. # Florentin Duneau , 2006-2010. # Simon Paillard , 2006. # Denis Barbier , 2006, 2010. # David Prévot , 2010, 2012. # Jean-Paul Guillonneau , 2021, 2023. msgid "" msgstr "" "Project-Id-Version: manpages.fr\n" "POT-Creation-Date: 2024-06-01 06:09+0200\n" "PO-Revision-Date: 2023-08-28 10:54+0200\n" "Last-Translator: Jean-Paul Guillonneau \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: vim\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "pkeys" msgstr "pkeys" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "2 mai 2024" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "Pages du manuel de Linux 6.8" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "NOM" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "pkeys - overview of Memory Protection Keys" msgstr "pkeys – Aperçu des clés de protection de la mémoire" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "DESCRIPTION" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Memory Protection Keys (pkeys) are an extension to existing page-based " "memory permissions. Normal page permissions using page tables require " "expensive system calls and TLB invalidations when changing permissions. " "Memory Protection Keys provide a mechanism for changing protections without " "requiring modification of the page tables on every permission change." msgstr "" "Les clés de protection de la mémoire (Memory Protection Keys — pkeys) sont " "une extension des permissions de la mémoire basées sur les pages. Les " "permissions normales de page nécessitent des appels système coûteux et des " "invalidations du TLB (Translation Lookaside Buffer) lors de modifications de " "permission. Les clés de protection de la mémoire fournissent un mécanisme " "pour changer les protections sans avoir besoin de modifier la table des " "pages lors de chaque modification de permission." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To use pkeys, software must first \"tag\" a page in the page tables with a " "pkey. After this tag is in place, an application only has to change the " "contents of a register in order to remove write access, or all access to a " "tagged page." msgstr "" "Pour utiliser B, le logiciel doit d’abord « étiqueter » une page dans " "la table des pages avec une pkey. Une fois cette étiquette posée, une " "application a seulement à changer le contenu d’un registre pour retirer " "l’accès en écriture ou tous les accès à une page étiquetée." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Protection keys work in conjunction with the existing B, " "B, and B permissions passed to system calls such as " "B(2) and B(2), but always act to further restrict these " "traditional permission mechanisms." msgstr "" "Les clés de protection de la mémoire fonctionnent en conjonction avec les " "permissions B, B et B existantes passées " "aux appels système tels que B(2) et B(2), mais agissent " "toujours pour restreindre encore plus ces mécanismes de permission " "traditionnels." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If a process performs an access that violates pkey restrictions, it receives " "a B signal. See B(2) for details of the information " "available with that signal." msgstr "" "Si un processus réalise un accès qui enfreint les restrictions de pkey, il " "reçoit un signal B. Consultez B(2) pour des détails sur " "l’information disponible avec ce signal." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To use the pkeys feature, the processor must support it, and the kernel must " "contain support for the feature on a given processor. As of early 2016 only " "future Intel x86 processors are supported, and this hardware supports 16 " "protection keys in each process. However, pkey 0 is used as the default " "key, so a maximum of 15 are available for actual application use. The " "default key is assigned to any memory region for which a pkey has not been " "explicitly assigned via B(2)." msgstr "" "Pour utiliser la fonctionnalité de B, le processeur doit la prendre " "en charge et le noyau doit contenir une prise en charge pour la " "fonctionnalité d’un processeur donné. Au tout début de 2016, seuls les " "processeurs x86 d’Intel à venir étaient pris en charge et ceux-ci géraient " "16 clés de protection de la mémoire pour chaque processus. Cependant, la " "pkey 0 est utilisée comme clé par défaut, donc un maximum de 15 sont " "disponibles pour une utilisation effective d’application. La clé par défaut " "est affectée à n’importe quelle région de la mémoire pour laquelle une pkey " "n’a pas été assignée explicitement à l’aide de B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Protection keys have the potential to add a layer of security and " "reliability to applications. But they have not been primarily designed as a " "security feature. For instance, WRPKRU is a completely unprivileged " "instruction, so pkeys are useless in any case that an attacker controls the " "PKRU register or can execute arbitrary instructions." msgstr "" "Les clés de protection ont la capacité d’ajouter une couche de sécurité et " "de fiabilité aux applications, mais elles n’ont pas été conçues " "principalement pour une fonctionnalité de sécurité. Par exemple, WRPKRU est " "une instruction entièrement non privilégiée, aussi les pkeys sont inutiles " "dans tous les cas où un attaquant contrôle le registre PKRU ou peut exécuter " "des instructions arbitraires." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Applications should be very careful to ensure that they do not \"leak\" " "protection keys. For instance, before calling B(2), the " "application should be sure that no memory has that pkey assigned. If the " "application left the freed pkey assigned, a future user of that pkey might " "inadvertently change the permissions of an unrelated data structure, which " "could impact security or stability. The kernel currently allows in-use " "pkeys to have B(2) called on them because it would have " "processor or memory performance implications to perform the additional " "checks needed to disallow it. Implementation of the necessary checks is " "left up to applications. Applications may implement these checks by " "searching the IpidI file for memory regions with the pkey " "assigned. Further details can be found in B(5)." msgstr "" "Les applications doivent être très précautionneuses pour assurer de ne pas " "faire « fuiter » leurs clés de protection. Par exemple, avant d’appeler " "B(2), l’application doit être sûre qu’aucune mémoire a cette pkey " "assignée. Si l’application laisse la pkey libérée assignée, un prochain " "utilisateur de cette pkey peut par inadvertance modifier les permissions " "d’une structure de données étrangère, pouvant impacter la sécurité ou la " "stabilité. Le noyau permet actuellement aux pkeys en cours d’avoir " "B(2) appelée sur elles, car cela pourrait avoir des implications " "de performance de processeur ou de mémoire pour réaliser des vérifications " "supplémentaires nécessaires pour désactiver cet appel. L’implémentation des " "vérifications nécessaires est laissée aux applications. Celles-ci peuvent " "mettre en œuvre ces vérifications en parcourant le fichier IpidI pour des régions de la mémoire ayant la pkey assignée. Plus de " "détails sont fournis dans B(5)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Any application wanting to use protection keys needs to be able to function " "without them. They might be unavailable because the hardware that the " "application runs on does not support them, the kernel code does not contain " "support, the kernel support has been disabled, or because the keys have all " "been allocated, perhaps by a library the application is using. It is " "recommended that applications wanting to use protection keys should simply " "call B(2) and test whether the call succeeds, instead of " "attempting to detect support for the feature in any other way." msgstr "" "Toute application voulant utiliser les clés de protection doivent être " "capables de fonctionner sans elles. Elles peuvent être indisponibles parce " "que le matériel exécutant cette application ne les prennent pas en charge, " "le code du noyau ne fournit aucune prise en charge ou cette prise en charge " "a été désactivée, ou parce que les clés ont été allouées, peut être par une " "bibliothèque utilisée par l’application. Il est recommandé aux applications " "voulant utiliser les clés de protection de simplement appeler " "B(2) et de tester si l’appel réussit au lieu d’essayer de " "détecter une prise en charge de la fonctionnalité par tout autre moyen." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Although unnecessary, hardware support for protection keys may be enumerated " "with the I instruction. Details of how to do this can be found in " "the Intel Software Developers Manual. The kernel performs this enumeration " "and exposes the information in I under the \"flags\" field. " "The string \"pku\" in this field indicates hardware support for protection " "keys and the string \"ospke\" indicates that the kernel contains and has " "enabled protection keys support." msgstr "" "Quoique non nécessaire, la prise en charge matérielle des clés de protection " "peut être déterminée à l’aide de l’instruction I. La manière de " "réaliser cela est décrite dans le manuel pour les développeurs de logiciels " "pour Intel. Le noyau réalise ce dénombrement et expose cette information " "dans le champ « flags » de I. La chaîne « pku » dans ce champ " "indique la prise en charge matérielle des clés de protection et la chaîne " "« ospke » indique que le noyau gère et active la prise en charge des clés de " "protection." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Applications using threads and protection keys should be especially " "careful. Threads inherit the protection key rights of the parent at the " "time of the B(2), system call. Applications should either ensure " "that their own permissions are appropriate for child threads at the time " "when B(2) is called, or ensure that each child thread can perform " "its own initialization of protection key rights." msgstr "" "Les applications utilisant les threads et les clés de protection doivent " "être particulièrement attentives. Les threads héritent des droits des clés " "de protection de leur parent au moment de l’appel système B(2). Les " "applications doivent aussi s’assurer que leurs propres permissions sont " "appropriées pour les threads enfant au moment de l’appel B(2) ou de " "s’assurer que chaque thread enfant peut réaliser sa propre initialisation " "des droits de clés de protection." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Signal Handler Behavior" msgstr "Comportement du gestionnaire de signal" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Each time a signal handler is invoked (including nested signals), the thread " "is temporarily given a new, default set of protection key rights that " "override the rights from the interrupted context. This means that " "applications must re-establish their desired protection key rights upon " "entering a signal handler if the desired rights differ from the defaults. " "The rights of any interrupted context are restored when the signal handler " "returns." msgstr "" "Chaque fois qu’un gestionnaire de signal est invoqué (y compris pour les " "signaux imbriqués), le thread obtient temporairement un nouvel ensemble par " "défaut de droits de clés de protection qui outrepasse les droits du contexte " "interrompu. Cela signifie que les applications doivent rétablir les droits " "désirés des clés de protection lors de l’utilisation d’un gestionnaire de " "signal si ces droits différent de ceux par défaut. Les droits de n’importe " "quel contexte sont restaurés lors du renvoi du gestionnaire de signal." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This signal behavior is unusual and is due to the fact that the x86 PKRU " "register (which stores protection key access rights) is managed with the " "same hardware mechanism (XSAVE) that manages floating-point registers. The " "signal behavior is the same as that of floating-point registers." msgstr "" "Ce comportement de signal est inhabituel et est dû au fait que le registre " "PKRU x86 (qui stocke les droits d’accès des clés de protection) est géré " "avec le même mécanisme matériel (XSAVE) qui gère les registres de virgule " "flottante. Le comportement du signal est le même que celui des registres de " "virgule flottante." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Protection Keys system calls" msgstr "Appels système des clés de protection" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The Linux kernel implements the following pkey-related system calls: " "B(2), B(2), and B(2)." msgstr "" "Le noyau Linux met en œuvre les appels système suivants relatifs aux clés de " "protection : B(2), B(2) et B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The Linux pkey system calls are available only if the kernel was configured " "and built with the B option." msgstr "" "Les appels système de Linux pour pkey sont disponibles uniquement si le " "noyau a été configuré et construit avec l’option " "B." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "EXEMPLES" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The program below allocates a page of memory with read and write " "permissions. It then writes some data to the memory and successfully reads " "it back. After that, it attempts to allocate a protection key and disallows " "access to the page by using the WRPKRU instruction. It then tries to access " "the page, which we now expect to cause a fatal signal to the application." msgstr "" "Le programme ci-dessous alloue une page de mémoire avec les permissions en " "lecture et écriture. Puis il écrit quelques données dans la mémoire et les " "relit avec succès. Après cela, il essaie d’allouer une clé de protection et " "désactive l’accès à la page en utilisant l’instruction WRPKRU. Il essaie " "alors d’accéder à la page qui est supposée provoquer un signal fatal pour " "l’application." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$B< ./a.out>\n" "buffer contains: 73\n" "about to read buffer again...\n" "Segmentation fault (core dumped)\n" msgstr "" "$B< ./a.out>\n" "le buffer contient : 73\n" "sur le point de lire le buffer de nouveau...\n" "Segmentation fault (core dumped)\n" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Program source" msgstr "Source du programme" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Eunistd.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/mman.hE\n" "\\&\n" "int\n" "main(void)\n" "{\n" " int status;\n" " int pkey;\n" " int *buffer;\n" "\\&\n" " /*\n" " * Allocate one page of memory.\n" " */\n" " buffer = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,\n" " MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);\n" " if (buffer == MAP_FAILED)\n" " err(EXIT_FAILURE, \"mmap\");\n" "\\&\n" " /*\n" " * Put some random data into the page (still OK to touch).\n" " */\n" " *buffer = __LINE__;\n" " printf(\"buffer contains: %d\\en\", *buffer);\n" "\\&\n" " /*\n" " * Allocate a protection key:\n" " */\n" " pkey = pkey_alloc(0, 0);\n" " if (pkey == -1)\n" " err(EXIT_FAILURE, \"pkey_alloc\");\n" "\\&\n" " /*\n" " * Disable access to any memory with \"pkey\" set,\n" " * even though there is none right now.\n" " */\n" " status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n" " if (status)\n" " err(EXIT_FAILURE, \"pkey_set\");\n" "\\&\n" " /*\n" " * Set the protection key on \"buffer\".\n" " * Note that it is still read/write as far as mprotect() is\n" " * concerned and the previous pkey_set() overrides it.\n" " */\n" " status = pkey_mprotect(buffer, getpagesize(),\n" " PROT_READ | PROT_WRITE, pkey);\n" " if (status == -1)\n" " err(EXIT_FAILURE, \"pkey_mprotect\");\n" "\\&\n" " printf(\"about to read buffer again...\\en\");\n" "\\&\n" " /*\n" " * This will crash, because we have disallowed access.\n" " */\n" " printf(\"buffer contains: %d\\en\", *buffer);\n" "\\&\n" " status = pkey_free(pkey);\n" " if (status == -1)\n" " err(EXIT_FAILURE, \"pkey_free\");\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Eunistd.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/mman.hE\n" "\\&\n" "int\n" "main(void)\n" "{\n" " int status;\n" " int pkey;\n" " int *buffer;\n" "\\&\n" " /*\n" " * Allocation d’une page de mémoire.\n" " */\n" " buffer = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,\n" " MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);\n" " if (buffer == MAP_FAILED)\n" " err(EXIT_FAILURE, \"mmap\");\n" "\\&\n" " /*\n" " * Mise de données aléatoires dans la page (toujours OK à affecter).\n" " */\n" " *buffer = __LINE__;\n" " printf(\"le buffer contient : %d\\en\", *buffer);\n" "\\&\n" " /*\n" " * Allocation d’une clé de protection :\n" " */\n" " pkey = pkey_alloc(0, 0);\n" " if (pkey == -1)\n" " err(EXIT_FAILURE, \"pkey_alloc\");\n" "\\&\n" " /*\n" " * Désactivation de l’accès à toute mémoire avec l’ensemble\n" " * « pkey », même si aucun droit n’existe à ce moment.\n" " */\n" " status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n" " if (status)\n" " err(EXIT_FAILURE, \"pkey_set\");\n" "\\&\n" " /*\n" " * Mettre la clé de protection dans « buffer ».\n" " * Noter que c’est toujours lect./écrit. aussi longtemps que mprotect()\n" " * est concerné et que le pkey_set() précédent l’écrase.\n" " */\n" " status = pkey_mprotect(buffer, getpagesize(),\n" " PROT_READ | PROT_WRITE, pkey);\n" " if (status == -1)\n" " err(EXIT_FAILURE, \"pkey_mprotect\");\n" "\\&\n" " printf(\"sur le point de lire le buffer de nouveau...\\en\");\n" "\\&\n" " /*\n" " * Cela va planter car l’accès a été désactivé.\n" " */\n" " printf(\"le buffer contient : %d\\en\", *buffer);\n" "\\&\n" " status = pkey_free(pkey);\n" " if (status == -1)\n" " err(EXIT_FAILURE, \"pkey_free\");\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "VOIR AUSSI" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B(2), B(2), B(2), B(2)" msgstr "" "B(2), B(2), B(2), B(2)" #. type: TH #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "2022-10-30" msgstr "30 octobre 2022" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "Pages du manuel de Linux 6.03" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Eunistd.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/mman.hE\n" msgstr "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Eunistd.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/mman.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " int status;\n" " int pkey;\n" " int *buffer;\n" msgstr "" "int\n" "main(void)\n" "{\n" " int status;\n" " int pkey;\n" " int *buffer;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /*\n" " * Allocate one page of memory.\n" " */\n" " buffer = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,\n" " MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);\n" " if (buffer == MAP_FAILED)\n" " err(EXIT_FAILURE, \"mmap\");\n" msgstr "" " /*\n" " * Allocation d’une page de mémoire.\n" " */\n" " buffer = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,\n" " MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);\n" " if (buffer == MAP_FAILED)\n" " err(EXIT_FAILURE, \"mmap\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /*\n" " * Put some random data into the page (still OK to touch).\n" " */\n" " *buffer = __LINE__;\n" " printf(\"buffer contains: %d\\en\", *buffer);\n" msgstr "" " /*\n" " * Mise de données aléatoires dans la page (toujours OK à affecter).\n" " */\n" " *buffer = __LINE__;\n" " printf(\"le buffer contient : %d\\en\", *buffer);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /*\n" " * Allocate a protection key:\n" " */\n" " pkey = pkey_alloc(0, 0);\n" " if (pkey == -1)\n" " err(EXIT_FAILURE, \"pkey_alloc\");\n" msgstr "" " /*\n" " * Allocation d’une clé de protection :\n" " */\n" " pkey = pkey_alloc(0, 0);\n" " if (pkey == -1)\n" " err(EXIT_FAILURE, \"pkey_alloc\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /*\n" " * Disable access to any memory with \"pkey\" set,\n" " * even though there is none right now.\n" " */\n" " status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n" " if (status)\n" " err(EXIT_FAILURE, \"pkey_set\");\n" msgstr "" " /*\n" " * Désactivation de l’accès à toute mémoire avec l’ensemble\n" " * « pkey », même si aucun droit n’existe à ce moment.\n" " */\n" " status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n" " if (status)\n" " err(EXIT_FAILURE, \"pkey_set\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /*\n" " * Set the protection key on \"buffer\".\n" " * Note that it is still read/write as far as mprotect() is\n" " * concerned and the previous pkey_set() overrides it.\n" " */\n" " status = pkey_mprotect(buffer, getpagesize(),\n" " PROT_READ | PROT_WRITE, pkey);\n" " if (status == -1)\n" " err(EXIT_FAILURE, \"pkey_mprotect\");\n" msgstr "" " /*\n" " * Mettre la clé de protection dans « buffer ».\n" " * Noter que c’est toujours lect./écrit. aussi longtemps que mprotect()\n" " * est concerné et que le pkey_set() précédent l’écrase.\n" " */\n" " status = pkey_mprotect(buffer, getpagesize(),\n" " PROT_READ | PROT_WRITE, pkey);\n" " if (status == -1)\n" " err(EXIT_FAILURE, \"pkey_mprotect\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " printf(\"about to read buffer again...\\en\");\n" msgstr " printf(\"sur le point de lire le buffer de nouveau...\\en\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /*\n" " * This will crash, because we have disallowed access.\n" " */\n" " printf(\"buffer contains: %d\\en\", *buffer);\n" msgstr "" " /*\n" " * Cela va planter car l’accès a été désactivé.\n" " */\n" " printf(\"le buffer contient : %d\\en\", *buffer);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " status = pkey_free(pkey);\n" " if (status == -1)\n" " err(EXIT_FAILURE, \"pkey_free\");\n" msgstr "" " status = pkey_free(pkey);\n" " if (status == -1)\n" " err(EXIT_FAILURE, \"pkey_free\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " exit(EXIT_SUCCESS);\n" "}\n" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "31 octobre 2023" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "Pages du manuel de Linux 6.06" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "Pages du manuel de Linux 6.7" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "Pages du manuel de Linux 6.04" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr "Pages du manuel de Linux (non publiées)"