...

FireFox火狐浏覽器無法上網原因查明:程序員大小寫搞錯了

2022-01-18

最近兩(liǎng)天,在用 FireFox 火狐浏覽器的用戶可能(néng)會(huì)出現無法連接上網的問題,起(qǐ)初以爲是新版升級的問題,還(hái)有人怪罪于 Win 系統,然而現在問題查明了,是火狐自己的問題,程序員將(jiāng)部分代碼的大小寫搞錯了。

火狐浏覽器前幾天發(fā)布了 96.0 版,說(shuō)是大幅減少了主線程負載,意味著(zhe)可以明顯降低對(duì)系統資源的占用,運行更快速、更流暢。

然而很多人升級之後(hòu)發(fā)現無法連接上網,後(hòu)面(miàn)就(jiù)排查了一系列問題,首先以爲真兇是 FireFox 96.0 新版,結果發(fā)現 FireFox 95 及之前的版本也有問題。

還(hái)有原因歸罪于 Windows 系統的補丁升級,結果也不是,另外還(hái)找了 DNS、雲服務商等原因,也排除了。

最後(hòu)發(fā)現問題跟 FireFox 的 HTTP3 有關,禁用之後(hòu)就(jiù)可以上網,真兇現在找到了,但到底是哪裡(lǐ)的問題?Mozilla 基金會(huì)最後(hòu)找到根源了——跟代碼大小寫有關。

據官方介紹,在解析 HTTP 标頭時(shí),FireFox 會(huì)用一個函數結束,該函數通常隻處理大寫的字段,如果是小寫的字母那就(jiù)會(huì)無法計算标頭長(cháng)度,從而導緻 FireForx 代碼陷入無限循環中。

找到問題之後(hòu),修複錯誤的過(guò)程也很簡單,未來這(zhè)個代碼不會(huì)再區分大小寫了。


來源:NetSmell