Преглед на файлове

Fix: use conn.firstUnderlyingConn

conn.meekSession.underlyingConn is not safe for concurrent use
mirokuratczyk преди 2 години
родител
ревизия
2d27cdc07b
променени са 1 файла, в които са добавени 2 реда и са изтрити 2 реда
  1. 2 2
      psiphon/server/meek.go

+ 2 - 2
psiphon/server/meek.go

@@ -1650,7 +1650,7 @@ func (conn *meekConn) SetReplay(PRNG *prng.PRNG) {
 
 
 	if conn.meekServer.normalizer != nil {
 	if conn.meekServer.normalizer != nil {
 		// The underlying conn is wrapped with a normalizer.
 		// The underlying conn is wrapped with a normalizer.
-		normalizer, ok := conn.meekSession.underlyingConn.(*transforms.HTTPNormalizer)
+		normalizer, ok := underlyingConn.(*transforms.HTTPNormalizer)
 		if ok {
 		if ok {
 			underlyingConn = normalizer.Conn
 			underlyingConn = normalizer.Conn
 		}
 		}
@@ -1674,7 +1674,7 @@ func (conn *meekConn) GetReplay() (*prng.Seed, bool) {
 
 
 	if conn.meekServer.normalizer != nil {
 	if conn.meekServer.normalizer != nil {
 		// The underlying conn is wrapped with a normalizer.
 		// The underlying conn is wrapped with a normalizer.
-		normalizer, ok := conn.meekSession.underlyingConn.(*transforms.HTTPNormalizer)
+		normalizer, ok := underlyingConn.(*transforms.HTTPNormalizer)
 		if ok {
 		if ok {
 			underlyingConn = normalizer.Conn
 			underlyingConn = normalizer.Conn
 		}
 		}