From a9c341545f5248753a9a98c478794328b5ed1b0e Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Thu, 18 Nov 2021 09:41:44 -0800 Subject: [PATCH] Fix integer overflow warnings --- grpc/src/compiler/schema_interface.h | 2 +- src/idl_gen_grpc.cpp | 8 ++++---- src/reflection.cpp | 8 +++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/grpc/src/compiler/schema_interface.h b/grpc/src/compiler/schema_interface.h index 044949819..9804e641f 100644 --- a/grpc/src/compiler/schema_interface.h +++ b/grpc/src/compiler/schema_interface.h @@ -93,7 +93,7 @@ struct Printer { virtual void Print(const std::map &vars, const char *template_string) = 0; virtual void Print(const char *string) = 0; - virtual void SetIndentationSize(const int size) = 0; + virtual void SetIndentationSize(const size_t size) = 0; virtual void Indent() = 0; virtual void Outdent() = 0; }; diff --git a/src/idl_gen_grpc.cpp b/src/idl_gen_grpc.cpp index 9aea745d4..8cb8ef798 100644 --- a/src/idl_gen_grpc.cpp +++ b/src/idl_gen_grpc.cpp @@ -191,7 +191,7 @@ class FlatBufPrinter : public grpc_generator::Printer { } } - void SetIndentationSize(const int size) { + void SetIndentationSize(const size_t size) { FLATBUFFERS_ASSERT(str_->empty()); indentation_size_ = size; } @@ -199,15 +199,15 @@ class FlatBufPrinter : public grpc_generator::Printer { void Indent() { indent_++; } void Outdent() { + FLATBUFFERS_ASSERT(indent_ > 0); indent_--; - FLATBUFFERS_ASSERT(indent_ >= 0); } private: std::string *str_; char escape_char_; - int indent_; - int indentation_size_; + size_t indent_; + size_t indentation_size_; char indentation_type_; }; diff --git a/src/reflection.cpp b/src/reflection.cpp index 8ab0dc344..ec4f4fa51 100644 --- a/src/reflection.cpp +++ b/src/reflection.cpp @@ -332,8 +332,9 @@ uint8_t *ResizeAnyVector(const reflection::Schema &schema, uoffset_t newsize, auto delta_bytes = delta_elem * static_cast(elem_size); auto vec_start = reinterpret_cast(vec) - flatbuf->data(); - auto start = static_cast(vec_start + sizeof(uoffset_t) + - elem_size * num_elems); + auto start = static_cast(vec_start) + + static_cast(sizeof(uoffset_t)) + + elem_size * num_elems; if (delta_bytes) { if (delta_elem < 0) { // Clear elements we're throwing away, since some might remain in the @@ -345,7 +346,8 @@ uint8_t *ResizeAnyVector(const reflection::Schema &schema, uoffset_t newsize, WriteScalar(flatbuf->data() + vec_start, newsize); // Length field. // Set new elements to 0.. this can be overwritten by the caller. if (delta_elem > 0) { - memset(flatbuf->data() + start, 0, delta_elem * elem_size); + memset(flatbuf->data() + start, 0, + static_cast(delta_elem) * elem_size); } } return flatbuf->data() + start;