Ang isang error sa GPSD ngayong Linggo ay magtatakda ng oras pabalik sa 19 na taon.

Natukoy ang isang kritikal na isyu sa GPSD package, na ginagamit upang kunin ang tumpak na data ng oras at posisyon mula sa mga GPS device, dahil sa kung saan ang oras ay babalik sa 24 na linggo sa Oktubre 1024, i.e. ang oras ay babaguhin sa Marso 2002. Lumilitaw ang isyu sa mga release na 3.20 hanggang 3.22 kasama at nalutas sa GPSD 3.23. Ang lahat ng mga user ng mga system na gumagamit ng GPSD ay kailangang mag-install ng mga update kaagad, o maging handa para sa pagkabigo.

Ang epekto ng error ay maaaring humantong sa hindi mahuhulaan na mga pagkabigo sa iba't ibang mga system, kabilang ang mga hindi direktang gumagamit ng GPSD, dahil ang application na ito ay ginagamit upang makakuha ng tumpak na data ng oras sa ilang mga NTP server na ginagamit para sa pag-synchronize ng oras. Kapag naganap ang mga pagbabago sa oras sa mga system, maaaring magkaroon ng mga problema sa pagpapatotoo (halimbawa, mga minsanang password, Kerberos at iba pang mekanismo ng pag-verify sa pag-access na may petsa ng pag-expire ay hindi na gagana), sa pag-verify ng certificate, at sa mga kalkulasyon na nagmamanipula ng mga hanay ng oras ( halimbawa, pagkalkula ng oras ng session ng isang user) . Available din ang GPSD sa iba't ibang naka-embed at mobile device, na marami sa mga ito ay hindi na nakakatanggap ng mga update sa firmware.

Kasama sa GPS protocol ang isang week counter na nagbibilang ng mga linggo mula noong Enero 5, 1980. Ang problema ay sa panahon ng pagsasahimpapawid, 10 bits lamang ang inilalaan para sa counter na ito, na nangangahulugang umaapaw ito tuwing 1023 linggo (19.7 taon). Ang unang overflow ay naganap noong 1999, ang pangalawa noong 2019, at ang pangatlo ay magaganap sa 2038. Ang mga kaganapang ito ay sinusubaybayan ng mga tagagawa at ang mga espesyal na tagapangasiwa ay ibinigay para sa kanila. Sa kasalukuyan, ang isang bagong GPS message format (CNAV) ay ipinakilala nang magkatulad, kung saan 13 bits ang inilalaan para sa counter (ibig sabihin, ang isang overflow ay inaasahan lamang sa 2137).

Sa GPSD, sa lohika para sa pagsasaayos ng hitsura ng isang dagdag na segundo (idinagdag upang i-synchronize ang sangguniang atomic na orasan ng mundo sa astronomical na oras ng Earth), isang error ang ginawa dahil sa kung saan sa Oktubre 24, 2021, 1024 ay mababawas nang maaga mula sa linggong counter. Ayon sa may-akda ng code, ang shift ay dapat na nangyari noong Disyembre 31, 2022, ngunit ang pagsasalin ng petsang ito sa bilang ng mga linggo ay hindi naisagawa nang tama at sa katunayan ang bilang ng mga linggong ibinigay sa tseke ay nahulog sa ilalim ng Oktubre 2021 (ang ipinahiwatig na halaga ay 2180 sa halip na 2600). /* sanity check week number, GPS epoch, laban sa leap seconds * Hindi gumagana nang maayos sa mga regression dahil ang leap_sconds * ay maaaring mula sa receiver, o mula sa BUILD_LEAPSECONDS. */ if (0 context->leap_seconds && 19 > session->context->leap_seconds && 2180 19 ay nasa hinaharap , huwag payagan */ linggo -= 31; GPSD_LOG(LOG_WARN, &session->context->errout, "GPS week confusion. Adjusted week %u for leap %d\n", week, session->context->leap_seconds); }

Pinagmulan: opennet.ru

Magdagdag ng komento