From 8bb62b29b5aa92f577d3e011c11d4ab2e75b65fd Mon Sep 17 00:00:00 2001 From: Nick Travers Date: Mon, 11 Oct 2021 09:18:07 -0700 Subject: [PATCH] vendor: bump Pebble to 59007c613a66 ``` 59007c61 sstable: consolidate checksum types 17635b0a *: address staticcheck lints 11823273 *: address staticcheck lint check U1000 807abfe8 *: address staticcheck lint check S1039 d24dd342 all: remove some unused code 3bdca93a sstable: clarify comment on checksum input 926d23e9 pebble: remove comment related to batching from the table cache 0a6177ae db: tweak ErrClosed documentation ecc685b2 db: expose facility for retrieving batch count b2eb88a7 sstable: remove unused rawBlockIter err field ``` Adds a explicit size-check to error on uint -> int overflow. Release note: None. --- DEPS.bzl | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- pkg/storage/batch.go | 8 ++++++-- vendor | 2 +- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/DEPS.bzl b/DEPS.bzl index fa66f10a979e..c9aab1eb80f2 100644 --- a/DEPS.bzl +++ b/DEPS.bzl @@ -736,8 +736,8 @@ def go_deps(): name = "com_github_cockroachdb_pebble", build_file_proto_mode = "disable_global", importpath = "github.com/cockroachdb/pebble", - sum = "h1:6Ur6xotJWd8Z1r6zsyI9vHVp+pvA/1dFMpbX+avdjxk=", - version = "v0.0.0-20210930201120-c73841491dd5", + sum = "h1:d+OlrpxjR43JYIIdHzADu7CbsfBxsufssvpFiRUdAxg=", + version = "v0.0.0-20211011160653-59007c613a66", ) go_repository( diff --git a/go.mod b/go.mod index 1b1aac002028..aa9528275a94 100644 --- a/go.mod +++ b/go.mod @@ -47,7 +47,7 @@ require ( github.com/cockroachdb/go-test-teamcity v0.0.0-20191211140407-cff980ad0a55 github.com/cockroachdb/gostdlib v1.13.0 github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f - github.com/cockroachdb/pebble v0.0.0-20210930201120-c73841491dd5 + github.com/cockroachdb/pebble v0.0.0-20211011160653-59007c613a66 github.com/cockroachdb/redact v1.1.3 github.com/cockroachdb/returncheck v0.0.0-20200612231554-92cdbca611dd github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2 diff --git a/go.sum b/go.sum index c55fed90570b..0f4d0d7b7677 100644 --- a/go.sum +++ b/go.sum @@ -302,8 +302,8 @@ github.com/cockroachdb/gostdlib v1.13.0 h1:TzSEPYgkKDNei3gbLc0rrHu4iHyBp7/+NxPOF github.com/cockroachdb/gostdlib v1.13.0/go.mod h1:eXX95p9QDrYwJfJ6AgeN9QnRa/lqqid9LAzWz/l5OgA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/cockroachdb/pebble v0.0.0-20210930201120-c73841491dd5 h1:6Ur6xotJWd8Z1r6zsyI9vHVp+pvA/1dFMpbX+avdjxk= -github.com/cockroachdb/pebble v0.0.0-20210930201120-c73841491dd5/go.mod h1:buxOO9GBtOcq1DiXDpIPYrmxY020K2A8lOrwno5FetU= +github.com/cockroachdb/pebble v0.0.0-20211011160653-59007c613a66 h1:d+OlrpxjR43JYIIdHzADu7CbsfBxsufssvpFiRUdAxg= +github.com/cockroachdb/pebble v0.0.0-20211011160653-59007c613a66/go.mod h1:buxOO9GBtOcq1DiXDpIPYrmxY020K2A8lOrwno5FetU= github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/redact v1.1.0/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= diff --git a/pkg/storage/batch.go b/pkg/storage/batch.go index 227835347c26..07e422e866a8 100644 --- a/pkg/storage/batch.go +++ b/pkg/storage/batch.go @@ -12,6 +12,7 @@ package storage import ( "encoding/binary" + "math" "github.com/cockroachdb/cockroach/pkg/storage/enginepb" "github.com/cockroachdb/cockroach/pkg/util/hlc" @@ -122,8 +123,11 @@ func rocksDBBatchDecodeHeader(repr []byte) (count int, orepr pebble.BatchReader, if seq != 0 { return 0, nil, errors.Errorf("bad sequence: expected 0, but found %d", seq) } - count = int(binary.LittleEndian.Uint32(repr[countPos:headerSize])) - return count, pebble.MakeBatchReader(repr), nil + r, c := pebble.ReadBatch(repr) + if c > math.MaxInt32 { + return 0, nil, errors.Errorf("count %d would overflow max int", c) + } + return int(c), r, nil } // RocksDBBatchReader is used to iterate the entries in a RocksDB batch diff --git a/vendor b/vendor index bd71529c58a1..99a4b5406068 160000 --- a/vendor +++ b/vendor @@ -1 +1 @@ -Subproject commit bd71529c58a138a16a54405e8f30b347d8efa6b1 +Subproject commit 99a4b54060688a3bbca7f4401867b3f1013b6866