App下載

Go 1.14.7 和 Go 1.13.15 更新;Go1.15 RC2 發(fā)布

猿友 2020-08-08 17:12:43 瀏覽數(shù) (3504)
反饋

Go語(yǔ)言這次依舊還是小版本更新,包括 Go 1.14.7Go 1.13.15,主要解決最近報(bào)告的安全問(wèn)題。為什么Go 每次更新都是發(fā)布兩個(gè)版本?這是 Go 的慣例,會(huì)同時(shí)維護(hù)兩個(gè)版本的更新,比如現(xiàn)在是 Go1.14Go1.13,如果 Go1.15 發(fā)布了,之后就會(huì)變成 Go1.15Go1.14。

(推薦教程:Go Web 編程

因?yàn)樯婕暗桨踩珕?wèn)題,建議所有用戶都進(jìn)行相應(yīng)版本更新(如果不確定哪個(gè)版本,請(qǐng)選擇 Go 1.14.7)。

涉及到的具體問(wèn)題如下:

  • encoding/binaryReadUvarintReadVarint 可以從無(wú)效輸入中讀取無(wú)限數(shù)量的字節(jié)。對(duì) ReadUvarintReadVarint 的某些無(wú)效輸入可能導(dǎo)致這些函數(shù)在返回錯(cuò)誤之前從 ByteReader 參數(shù)讀取無(wú)限數(shù)量的字節(jié)。當(dāng)調(diào)用者直接從網(wǎng)絡(luò)讀取數(shù)據(jù)時(shí),這可能導(dǎo)致處理的輸入超出預(yù)期,并且依賴于 ReadUvarintReadVarint 甚至僅從無(wú)效輸入中僅消耗少量的有限字節(jié)數(shù)。在更新后,ReadUvarintReadVarint 現(xiàn)在總是在消耗了一定數(shù)量的字節(jié)(特別是 MaxVarintLen64,即 10)之后返回。返回的結(jié)果沒(méi)有改變;這些函數(shù)僅檢測(cè)并返回一些錯(cuò)誤,而無(wú)需讀取過(guò)多的輸入。具體 issue 見(jiàn):https://github.com/golang/go/issues/40618。

(推薦微課:Go 基礎(chǔ)微課

在剛剛發(fā)布的 Go1.15 RC2 版本中,也修復(fù)了該問(wèn)題。關(guān)于 Go1.15 的更多信息可以參見(jiàn)文檔:https://tip.golang.org/doc/go1.15, 已經(jīng)8月份了,Go1.15 正式發(fā)布應(yīng)該不遠(yuǎn)了。

0 人點(diǎn)贊