Fix check ss bad udp request #1122

This commit is contained in:
世界 2022-06-28 07:50:04 +08:00
parent 0f2a6f2088
commit 52930a16b2
No known key found for this signature in database
GPG key ID: CD109927C34A63C4
5 changed files with 15 additions and 10 deletions

View file

@ -4,7 +4,6 @@ package shadowsocks_2022
import (
"context"
"github.com/sagernet/sing-shadowsocks"
"github.com/sagernet/sing-shadowsocks/shadowaead_2022"
C "github.com/sagernet/sing/common"
@ -86,8 +85,10 @@ func (i *Inbound) Process(ctx context.Context, network net.Network, connection s
return returnError(err)
}
for _, buffer := range mb {
err = i.service.NewPacket(ctx, pc, B.As(buffer.Bytes()).ToOwned(), metadata)
packet := B.As(buffer.Bytes()).ToOwned()
err = i.service.NewPacket(ctx, pc, packet, metadata)
if err != nil {
packet.Release()
buf.ReleaseMulti(mb)
return err
}

View file

@ -106,8 +106,10 @@ func (i *MultiUserInbound) Process(ctx context.Context, network net.Network, con
return returnError(err)
}
for _, buffer := range mb {
err = i.service.NewPacket(ctx, pc, B.As(buffer.Bytes()).ToOwned(), metadata)
packet := B.As(buffer.Bytes()).ToOwned()
err = i.service.NewPacket(ctx, pc, packet, metadata)
if err != nil {
packet.Release()
buf.ReleaseMulti(mb)
return err
}

View file

@ -105,8 +105,10 @@ func (i *RelayInbound) Process(ctx context.Context, network net.Network, connect
return returnError(err)
}
for _, buffer := range mb {
err = i.service.NewPacket(ctx, pc, B.As(buffer.Bytes()).ToOwned(), metadata)
packet := B.As(buffer.Bytes()).ToOwned()
err = i.service.NewPacket(ctx, pc, packet, metadata)
if err != nil {
packet.Release()
buf.ReleaseMulti(mb)
return err
}