From 4876e9201473c809e476a3a60c5b71767dc39870 Mon Sep 17 00:00:00 2001 From: Fabian Reinartz Date: Thu, 17 Sep 2015 17:20:08 +0200 Subject: [PATCH] Upgrade expfmt vendoring --- .../prometheus/common/expfmt/decode.go | 4 +-- .../prometheus/common/expfmt/fuzz.go | 36 +++++++++++++++++++ vendor/vendor.json | 6 ++-- 3 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 vendor/github.com/prometheus/common/expfmt/fuzz.go diff --git a/vendor/github.com/prometheus/common/expfmt/decode.go b/vendor/github.com/prometheus/common/expfmt/decode.go index 68a894445..7210c92fa 100644 --- a/vendor/github.com/prometheus/common/expfmt/decode.go +++ b/vendor/github.com/prometheus/common/expfmt/decode.go @@ -36,7 +36,7 @@ type DecodeOptions struct { Timestamp model.Time } -// NewDecor returns a new decoder based on the HTTP header. +// NewDecoder returns a new decoder based on the HTTP header. func NewDecoder(r io.Reader, h http.Header) (Decoder, error) { ct := h.Get(hdrContentType) @@ -135,7 +135,7 @@ func ExtractSamples(o *DecodeOptions, fams ...*dto.MetricFamily) model.Vector { } func extractSamples(f *dto.MetricFamily, o *DecodeOptions) model.Vector { - switch *f.Type { + switch f.GetType() { case dto.MetricType_COUNTER: return extractCounter(o, f) case dto.MetricType_GAUGE: diff --git a/vendor/github.com/prometheus/common/expfmt/fuzz.go b/vendor/github.com/prometheus/common/expfmt/fuzz.go new file mode 100644 index 000000000..14f920146 --- /dev/null +++ b/vendor/github.com/prometheus/common/expfmt/fuzz.go @@ -0,0 +1,36 @@ +// Copyright 2014 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Build only when actually fuzzing +// +build gofuzz + +package expfmt + +import "bytes" + +// Fuzz text metric parser with with github.com/dvyukov/go-fuzz: +// +// go-fuzz-build github.com/prometheus/client_golang/text +// go-fuzz -bin text-fuzz.zip -workdir fuzz +// +// Further input samples should go in the folder fuzz/corpus. +func Fuzz(in []byte) int { + parser := TextParser{} + _, err := parser.TextToMetricFamilies(bytes.NewReader(in)) + + if err != nil { + return 0 + } + + return 1 +} diff --git a/vendor/vendor.json b/vendor/vendor.json index 2f64f88e9..b20d1793e 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -74,8 +74,8 @@ }, { "path": "github.com/prometheus/common/expfmt", - "revision": "c33395bbc758c8d25735ec7036d66b342084ae35", - "revisionTime": "2015-08-25T14:37:19+02:00" + "revision": "e5bcf05f3c1b99df9892e773349e88d038f0e93c", + "revisionTime": "2015-09-17T12:22:22+02:00" }, { "path": "github.com/prometheus/common/model", @@ -173,4 +173,4 @@ "revisionTime": "2015-06-24T11:29:02+01:00" } ] -} +} \ No newline at end of file