From 4aca9e658874f8c72fff3a03039de40e294d1822 Mon Sep 17 00:00:00 2001 From: lawl Date: Tue, 28 Sep 2021 16:27:57 +0200 Subject: Pulseaudio: Don't crash on receiving longer-than-expected string message See: https://github.com/lawl/pulseaudio/commit/ed754c0c6618ee6320b27be07b73231fb98802ff Closes #178 --- go.mod | 2 +- go.sum | 2 ++ vendor/github.com/lawl/pulseaudio/format.go | 6 ++++-- vendor/modules.txt | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 7564c2b..282a8ac 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/BurntSushi/toml v0.3.1 github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 github.com/aarzilli/nucular v0.0.0-20200615134801-81910c722bba - github.com/lawl/pulseaudio v0.0.0-20210604102109-cb2596d6a8ef + github.com/lawl/pulseaudio v0.0.0-20210928141934-ed754c0c6618 github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 ) diff --git a/go.sum b/go.sum index 57e2b2a..7db32cc 100644 --- a/go.sum +++ b/go.sum @@ -23,6 +23,8 @@ github.com/lawl/pulseaudio v0.0.0-20200802093727-ab0735955fd0 h1:JrvOwrr1teFiqsp github.com/lawl/pulseaudio v0.0.0-20200802093727-ab0735955fd0/go.mod h1:9h36x4KH7r2V8DOCKoPMt87IXZ++X90y8D5nnuwq290= github.com/lawl/pulseaudio v0.0.0-20210604102109-cb2596d6a8ef h1:mpCJg3O6C+B8mh5xoO147NG3Z70GBcFNgqgz2DH/rLQ= github.com/lawl/pulseaudio v0.0.0-20210604102109-cb2596d6a8ef/go.mod h1:9h36x4KH7r2V8DOCKoPMt87IXZ++X90y8D5nnuwq290= +github.com/lawl/pulseaudio v0.0.0-20210928141934-ed754c0c6618 h1:lktbhQBHluc1oWEDow4DEv13qkWJ8zm/dTUSKer2iKk= +github.com/lawl/pulseaudio v0.0.0-20210928141934-ed754c0c6618/go.mod h1:9h36x4KH7r2V8DOCKoPMt87IXZ++X90y8D5nnuwq290= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/vendor/github.com/lawl/pulseaudio/format.go b/vendor/github.com/lawl/pulseaudio/format.go index f1e7503..51b52c8 100644 --- a/vendor/github.com/lawl/pulseaudio/format.go +++ b/vendor/github.com/lawl/pulseaudio/format.go @@ -156,13 +156,15 @@ func bread(r io.Reader, data ...interface{}) error { sptr, ok := v.(*string) if ok { - buf := make([]byte, 1024) // max string length i guess. + buf := make([]byte, 0) i := 0 for { - _, err := r.Read(buf[i : i+1]) + var curChar [1]byte + _, err := r.Read(curChar[:]) if err != nil { return err } + buf = append(buf, curChar[0]) if buf[i] == 0 { *sptr = string(buf[:i]) break diff --git a/vendor/modules.txt b/vendor/modules.txt index c68786e..515d751 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -71,7 +71,7 @@ github.com/golang/freetype/truetype # github.com/hashicorp/golang-lru v0.0.0-20160813221303-0a025b7e63ad github.com/hashicorp/golang-lru github.com/hashicorp/golang-lru/simplelru -# github.com/lawl/pulseaudio v0.0.0-20210604102109-cb2596d6a8ef +# github.com/lawl/pulseaudio v0.0.0-20210928141934-ed754c0c6618 ## explicit github.com/lawl/pulseaudio # github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 -- cgit v1.2.3-54-g00ecf