Check nullptr before dereferencing in MetricId Fixes a nullptr deference in case of an invalid metric_name. Change-Id: I529c1016affae2917e972b1f4a1d44e642103996
diff --git a/encoder/encoder.cc b/encoder/encoder.cc index e4b8cd3..2ee0415 100644 --- a/encoder/encoder.cc +++ b/encoder/encoder.cc
@@ -533,7 +533,11 @@ } uint32_t Encoder::MetricId(const std::string& metric_name) { - return project_->Metric(metric_name)->id(); + const Metric* metric = project_->Metric(metric_name); + if (metric) { + return metric->id(); + } + return 0; } const std::unordered_map<std::string, uint32_t>&
diff --git a/encoder/encoder.h b/encoder/encoder.h index 6bb6214..8a45f67 100644 --- a/encoder/encoder.h +++ b/encoder/encoder.h
@@ -276,7 +276,7 @@ Result Encode(uint32_t metric_id, const Value& value); // Returns the metric_id associated with the given |metric_name| by looking - // it up in the ProjectContext. + // it up in the ProjectContext. If there is no such Metric, returns 0. uint32_t MetricId(const std::string& metric_name); // Returns a map from MetricPart names to default encoding_ids.