Vue lecture

☕️ Dans le noyau Linux 7.2, la suppression du vieux strncpy a réclamé un audit gigantesque



Depuis des décennies, les développeurs Linux utilisent une fonction nommée strncpy pour copier du texte. Développée en C, elle est étiquetée comme dangereuse par la propre documentation du noyau. Problème, elle est omniprésente.

Pour comprendre le problème, on peut utiliser une analogie. Supposons que la mémoire de l’ordinateur est comme une série de casiers. Quand un programme veut enregistrer un texte, il réserve une boite d’une certaine taille et y écrit le texte. En langage C, l’ordinateur n’a pas de moyen « naturel » pour savoir quand le mot s’arrête. Il y a donc une règle simple : quand le programme écrit un texte, il faut qu’un point rouge (caractère de fin de chaîne \0) en signale la fin.

Photographie retouchée de Long Ma pour Unsplash
Long Ma pour Unsplash

Et c’est là que les ennuis commencent. La fonction strncpy() est responsable de la copie des textes, mais elle a un gros défaut : quand le texte est trop long, elle coupe la séquence de caractères, mais oublie d’ajouter un point. Et quand le texte est trop court ? Elle ajoute autant de points rouges que nécessaire pour remplir le champ réservé. Les conséquences vont du gaspillage d’énergie à la fuite de secrets, car l’absence de point rouge entraine l’application ou le service à lire ce qui se trouve au-delà, donc des informations présentes dans d’autres « casiers ».

Ces problèmes sont connus depuis longtemps, mais leur résolution a demandé un vaste effort d’ingénierie. Des développeurs ont ainsi passé les six dernières années à référencer toutes les occurrences de la fonction strncpy dans l’intégralité du code du noyau, totalisant 362 commits (des participations, en quelque sorte), rapporte Phoronix. La version 7.2 à venir sera donc la première à ne plus posséder strncpy, remplacé par des variantes modernes et beaucoup plus sécurisées.

Dans la plupart des cas, il s’agira de strscpy, qui possède le comportement adapté : l’outil copie du texte, mais si la séquence est trop longue, il la tronçonne en ajoutant systématiquement un point rouge à la fin de chaque morceau. Strncpy est donc supprimé définitivement à partir du prochain noyau, avec impossibilité d’y faire appel.

  •  

Windows 11 : restauration « à un point dans le passé » et report indéfini des mises à jour

Un peu de bon sens
Windows 11 : restauration « à un point dans le passé » et report indéfini des mises à jour

Microsoft diffuse depuis ce 23 juin une mise à jour – pour l’instant optionnelle – contenant une série d’améliorations pour Windows 11. Parmi elles, une nouvelle fonction de restauration depuis une sauvegarde, capable de remettre en place un ancien état du système datant de quelques jours au maximum, et la possibilité de reporter indéfiniment les mises à jour.

Nouvelle mise à jour pour Windows 11, avec à son bord de multiples ajouts plus ou moins importants. Portant la référence KB5095093, elle est distribuée depuis le 23 juin et se présente pour l’instant sous forme de téléchargement optionnel, quand le réglage « Recevez les dernières mises à jour dès qu’elles sont disponibles » est activé dans Windows Update. Dans notre cas, la fin de l’installation a déclenché deux redémarrages et a nécessité un peu plus de temps que d’habitude.

Une nouvelle restauration

La nouveauté la plus visible est une fonction nommée « Restauration à un instant dans le passé ». On peut la trouver dans les Paramètres > Système > Récupération. Là, une nouvelle entrée est disponible dans la partie « Options de récupération », en bas de liste.

L’ouverture du panneau correspondant réclame une validation des droits administrateurs. Dans la petite fenêtre qui s’ouvre, on peut voir une fonction activée par défaut se proposant de sauvegarder régulièrement l’état du système pour le restaurer en cas de besoin. N’est-ce pas déjà le rôle de la fonction Restauration présente depuis des années ? Oui, mais avec des différences notables.

Contrairement au mécanisme existant, la nouvelle restauration enregistre l’état complet du système à intervalles réguliers, par défaut toutes les 24 heures. L’ancien mécanisme – toujours présent – ne se déclenche qu’à certains évènements, comme l’installation d’un pilote ou d’une application, et ne sauvegarde que les fichiers système et les paramètres.

Les options liées à cette restauration dépendent de la licence utilisée pour Windows. Pour la grande majorité des PC (éditions Famille et Professionnels), le cycle de 24 heures est obligatoire. Avec une licence Entreprise, on peut choisir des cycles de 4, 8, 12 ou 24 heures. La durée de rétention est fixée par défaut à 72 heures, et on ne peut pas aller plus loin. Les licences Entreprise peuvent faire varier cette durée à 6, 12, 16 ou 24 heures. Le seul réglage identique à toutes les éditions est la quantité de stockage affectée. Elle est par défaut de 2 % de l’espace disque total, que l’on peut faire varier de 0 à 3 %. 

Il y a donc une limite nette à la quantité d’états que cette fonction peut garder. Quelle que soit la fréquence, les états finiront par être effacés au bout de 72 heures maximum ou quand l’espace réservé est plein. Le panneau indique toujours la présence des derniers états, ainsi que l’espace consommé par ces sauvegardes. En outre, la fonction ne s’active automatiquement que si le PC dispose d’au moins 200 Go d’espace libre sur le disque. Dans le cas contraire, la fonction est coupée, mais on peut l’activer manuellement depuis le même panneau. On peut l’éteindre à tout moment.

Enfin, le processus de restauration lui-même ne peut pas être déclenché depuis Windows. Pour s’en servir, vous devez redémarrer la machine dans l’environnement de récupération (WinRE). L’accès le plus simple se trouve depuis le même panneau Système > Récupération. Depuis l’interface de WinRE, il suffira alors de sélectionner « Restauration à un point dans le passé » et de choisir la sauvegarde. Si le disque est chiffré avec BitLocker, la clé de récupération devra être saisie.

Windows Update peut reporter indéfiniment les mises à jour


Il reste 51% de l'article à découvrir.
Vous devez être abonné•e pour lire la suite de cet article.
Déjà abonné•e ? Générez une clé RSS dans votre profil.

  •  
❌