Eraro en GPSD ĉi-dimanĉe tradukiĝas al tempoŝanĝo de antaŭ 19 jaroj

Kritika afero estis identigita en la GPSD-pakaĵo, kiu estas uzata por ĉerpi precizajn tempo- kaj poziciajn datumojn de GPS-aparatoj, pro kio la tempo reŝanĝos 24 semajnojn la 1024-an de oktobro, t.e. la tempo estos ŝanĝita al marto 2002. La problemo aperas en eldonoj 3.20 ĝis 3.22 inkluzive kaj estas solvita en GPSD 3.23. Ĉiuj uzantoj de sistemoj kiuj uzas GPSD devas instali ĝisdatigojn tuj, aŭ esti pretaj por fiasko.

La efiko de la eraro povas konduki al neantaŭvideblaj misfunkciadoj en diversaj sistemoj, inkluzive de tiuj, kiuj ne rekte uzas GPSD, ĉar ĉi tiu aplikaĵo estas uzata por akiri precizajn tempodatumojn pri iuj NTP-serviloj uzataj por temposinkronigado. Kiam tempoŝanĝoj okazas en sistemoj, problemoj povas ekesti kun aŭtentigo (ekzemple, unufojaj pasvortoj, Kerberos kaj aliaj alirkonfirmmekanismoj kiuj havas limdaton ne plu funkcios), kun atestilkonfirmo, kaj kun kalkuloj kiuj manipulas tempointervalojn ( ekzemple, kalkulante la tempon de la sesio de uzanto) . GPSD ankaŭ haveblas sur diversaj enigitaj kaj porteblaj aparatoj, multaj el kiuj ne plu ricevas firmvarajn ĝisdatigojn.

La GPS-protokolo inkludas semajnokalkulilon kiu nombras la semajnojn ekde januaro 5, 1980. La problemo estas, ke dum elsendo, nur 10 bitoj estas asignitaj por ĉi tiu nombrilo, kio signifas, ke ĝi superfluas ĉiujn 1023 semajnojn (19.7 jaroj). La unua superfluo okazis en 1999, la dua en 2019, kaj la tria okazos en 2038. Ĉi tiuj eventoj estas monitoritaj de fabrikantoj kaj specialaj prizorgantoj estas provizitaj por ili. Nuntempe, nova GPS-mesaĝo formato (CNAV) estis enkondukita paralele, en kiu 13 bitoj estas asignitaj por la nombrilo (t.e., superfluo estas atendita nur en 2137).

En GPSD, en la logiko por alĝustigo de la aspekto de kroma sekundo (aldonita por sinkronigi la referencajn atomhorloĝojn de la mondo kun la astronomia tempo de la Tero), estis farita eraro pro kiu la 24-an de oktobro 2021, 1024 estos subtrahita antaŭtempe de la semajna nombrilo. Laŭ la aŭtoro de la kodo, la ŝanĝo devus esti okazinta la 31-an de decembro 2022, sed la tradukado de ĉi tiu dato en la nombro da semajnoj ne estis efektivigita ĝuste kaj fakte la nombro da semajnoj donita en la ĉeko falis sub oktobro 2021. (la indikita valoro estas 2180 anstataŭ 2600). /* prudenta kontrolo semajnnumero, GPS-epoko, kontraŭ supersekundoj * Ne funkcias bone kun regresoj ĉar la leap_sconds * povus esti de la ricevilo, aŭ de BUILD_LEAPSECONDS. */ if (0 < sesio->kunteksto->salto_sekundoj && 19 > sesio->kunteksto->salto_sekundoj && 2180 < semajno) { /* supozu supersekundo = 19 antaŭ la 31-a de decembro 2022 * do semajno > 2180 estas multe en la estonteco , ne permesu ĝin */ semajno -= 1024; GPSD_LOG(LOG_WARN, &session->context->errout, "GPS-semajna konfuzo. Alĝustigita semajno %u por salto %d\n", semajno, sesio->kunteksto->salto_sekundoj); }

fonto: opennet.ru

Aĉetu fidindan gastigadon por retejoj kun DDoS-protekto, VPS-VDS-serviloj 🔥 Aĉetu fidindan retejan gastigadon kun DDoS-protekto, VPS VDS-servilojn | ProHoster