Fautuaina e taofi le faʻaaogaina o le utmp e aveese ai le faʻafitauli o le Y2038 a Glibc

Thorsten Kukuk, taʻitaʻi o le vaega o le atinaʻeina o tekonolosi i le lumanaʻi i SUSE (Future Technology Team, atiaʻe openSUSE MicroOS ma SLE Micro), o le na taʻitaʻia muamua le SUSE LINUX Enterprise Server project mo 10 tausaga, na fautuaina e aveese le faila / var / run / utmp. i tufatufaga e faʻatalanoa atoa ai le faʻafitauli 2038 i Glibc. O talosaga uma e faʻaaoga ai le utmp, wtmp ma le lastlog e faʻatulagaina e faʻaliliuina i le mauaina o se lisi o tagata faʻaoga e faʻaoga systemd-logind.

I le aso 19 o Ianuari, 2038, o le a taumasuasua ai fa'asologa o taimi e fa'ailoa mai e le ituaiga 32-bit time_t. Glibc, e ui ina fa'aofiina se 64-bit time_t type, fa'aauau pea ona fa'aogaina le 32-bit time_t type i nisi tulaga i luga ole 64-bit platforms e fa'amautu ai le fetaui ma 32-bit user space applications. O se tasi o ia mataupu o le / var / run / utmp faila, lea e teu ai faʻamatalaga e uiga i tagata faʻaoga o loʻo ulufale nei i totonu o le polokalama. Ole taimi ole fanua ile utmp o loʻo faʻamaonia e faʻaaoga ai le 32-bit time_t tau.

Na o le suia o le taimi i le utmp mai le 32-bit i le 64-bit type o le a le aoga, aua o le a oʻo atu ai i se suiga i le Glibc ABI (o le a suia le ituaiga i galuega e pei o le login(), getutid() ma le utmpname ()) ma le malepelepe o fesoʻotaʻiga ma talosaga e faʻaogaina le utmp, e aofia ai w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, xterm display managers, emacs, openssh, qemu, samba, rsyslog, etc. Ona o le tele o faʻalavelave faʻalavelave ma faigata, o le manatu o le suia o le time_t type i le utmp na teena e le Glibc developers. Mo le mafuaʻaga lava e tasi, o le filifiliga o le faʻaogaina o le avanoa avanoa avanoa i le utmp structure e faʻaopoopo ai se isi 64-bit taimi taimi na lafoaia.

E le gata i lea, o le suia o le ituaiga bit loloto i le utmp e le foia ai isi faʻafitauli o loʻo i ai nei, lea ou te manaʻo foi e faʻaumatia. Mo se faʻataʻitaʻiga, o le tusitusi i le utmp e manaʻomia ai faʻatagaga faʻapitoa, lea e manaʻomia ai faʻagasologa e tuʻuina atu avanoa faʻaopoopo. O le isi faʻafitauli o le utmp architecture e mafai ai e tagata faʻapitonuʻu ona faia osofaʻiga a le DoS, e mafua ai le faʻalavelaveina o le auaunaga utmp e ala i le faʻaogaina o loka faila, lea e le mafai ai ona mautinoa o mea o loʻo i totonu o le utmp e atagia ai le tulaga moni i totonu o le polokalama. Na faʻamoemoe e faʻaaoga se faʻasologa faʻapitoa e faʻatautaia ai le avanoa i le utmp, ae mo ia galuega o loʻo i ai se faiga faʻaoga-systemd-logind ma le faʻalauiloaina o se isi faiga faʻapitoa e le fautuaina (o talosaga e tatau ona tuʻuina atu faʻamatalaga i ni tagata e lua i le taimi e tasi).

I le taimi lava e tasi, e tusa lava pe foia le faafitauli i osofaiga a le DoS, o mea o loʻo i totonu o le utmp e tumau naʻo faʻamatalaga ma e le faʻamaonia ai se ata o le mea moni. Mo se faʻataʻitaʻiga, eseese emulators ma terminal multiplexers e atagia ai lo latou tulaga ese - faʻalauiloa laina GNOME e lima o le a iu ai i le tasi tagata faʻaoga e atagia i le utmp, ma le faʻalauiloaina o le lima konsole poʻo le xterm terminals i KDE o le a maua ai le ono. O le amio a le screen ma le tmux e tutusa lelei lava: i le tulaga muamua, o vasega taʻitasi e faitauina o se tagata faʻaoga ese, ma i le lona lua, naʻo le tasi le tagata faʻaoga e faʻaalia mo vasega uma.

O se taunuuga, o le tali sili ona faigofie, ua fautuaina e faʻafeiloaʻi uma talosaga e faʻaaoga ai le isi auaunaga systemd-logind o loʻo i ai nei ma, a maeʻa ona leai ni polokalame o loʻo i ai nei e maua ai le utmp, taofi le puʻeina i le utmp. Ina ia sui le wtmp, ua fautuaina e saunia fesoʻotaʻiga polokalame mo le tusitusi ma le faitauina o faʻamatalaga e uiga i tagata faʻaoga systemd-journald. O le codebase mo le isi faʻasalalauga o le systemd 254 ua uma ona aofia ai galuega talafeagai e tuʻuina atu ai faʻamatalaga sui utmp e ala i le libsystemd e faʻaaoga ai le sd-login.h API poʻo le DBUS.

puna: opennet.ru

Faaopoopo i ai se faamatalaga