go encoding/pem: 提供大量数据时,解码方法会大量消耗CPU资源,

ryoqjall  于 2个月前  发布在  Go
关注(0)|答案(1)|浏览(27)

你正在使用的Go版本是什么( go version )?

$ go version
17.5

这个问题在最新版本中是否会重现?

是的

你正在使用什么操作系统和处理器架构( go env )?

go env 输出

$ go env
go env
GO111MODULE=""
GOARCH="amd64"
GOBIN="/home/sammy/go/bin"
GOCACHE="/home/sammy/.cache/go-build"
GOENV="/home/sammy/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/sammy/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/sammy/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/nix/store/i8x0bv8v69j8c2njymgs4cl3albqc20h-go-1.17.5/share/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/nix/store/i8x0bv8v69j8c2njymgs4cl3albqc20h-go-1.17.5/share/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.17.5"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/run/user/1000/go-build3984378223=/tmp/go-build -gno-record-gcc-switches"

你做了什么?

作为oss-fuzz模糊测试的一部分,我们遇到了一个问题,其中pem.Decode消耗了大量的CPU资源,这是它的测试用例 https://github.com/sigstore/sigstore/files/7676542/clusterfuzz-testcase-minimized-FuzzUnmarshalCertificatesFromPEM-4710187355734016.zip

你期望看到什么?

pem.Decode比它消耗大量CPU更早完成

你看到了什么?

它运行缓慢

相关问题