From 7c56b1d6c7f76fec6ece4ca94eb04d2db365e7a7 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Fri, 25 Feb 2022 22:11:19 +0100 Subject: [PATCH] fix integer overflow --- FlippR-Driver/include/output/items/Display.h | 2 +- FlippR-Driver/networking/output/OutputRequestHandler.cpp | 2 +- FlippR-Driver/src/output/items/detail/Display.cpp | 2 +- FlippR-Driver/src/output/items/detail/Display.h | 2 +- FlippR-Driver/src/output/items/detail/EightDigitDisplay.h | 2 +- FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/FlippR-Driver/include/output/items/Display.h b/FlippR-Driver/include/output/items/Display.h index 7d3bfd7..e119a6f 100644 --- a/FlippR-Driver/include/output/items/Display.h +++ b/FlippR-Driver/include/output/items/Display.h @@ -23,7 +23,7 @@ class Display : public virtual items::Item public: virtual ~Display() = default; - virtual void write_score(unsigned int score) = 0; + virtual void write_score(uint64_t score) = 0; }; } diff --git a/FlippR-Driver/networking/output/OutputRequestHandler.cpp b/FlippR-Driver/networking/output/OutputRequestHandler.cpp index 5bf5cc0..134a48c 100644 --- a/FlippR-Driver/networking/output/OutputRequestHandler.cpp +++ b/FlippR-Driver/networking/output/OutputRequestHandler.cpp @@ -254,7 +254,7 @@ boost::optional OutputRequestHandler::parseDisplay(const std { try { - unsigned int numerical_score = std::stoi(score); + uint64_t numerical_score = std::stoi(score); display->write_score(numerical_score); } catch(std::invalid_argument &e) diff --git a/FlippR-Driver/src/output/items/detail/Display.cpp b/FlippR-Driver/src/output/items/detail/Display.cpp index ad7e9c2..fa21baa 100644 --- a/FlippR-Driver/src/output/items/detail/Display.cpp +++ b/FlippR-Driver/src/output/items/detail/Display.cpp @@ -30,7 +30,7 @@ std::string Display::get_name() const return this->name; } -void Display::write_score(const unsigned int & score, const unsigned int & length) +void Display::write_score(const uint64_t & score, const unsigned int & length) { auto score_string = std::to_string(score); diff --git a/FlippR-Driver/src/output/items/detail/Display.h b/FlippR-Driver/src/output/items/detail/Display.h index 55168c9..f7233a8 100644 --- a/FlippR-Driver/src/output/items/detail/Display.h +++ b/FlippR-Driver/src/output/items/detail/Display.h @@ -27,7 +27,7 @@ public: Display(const uint8_t & address, const std::string & name); virtual ~Display() = default; - void write_score(const unsigned int & score, const unsigned int & length); + void write_score(const uint64_t & score, const unsigned int & length); void write_content(std::string & content, const unsigned int & length); std::string get_content() const override; diff --git a/FlippR-Driver/src/output/items/detail/EightDigitDisplay.h b/FlippR-Driver/src/output/items/detail/EightDigitDisplay.h index 5305e79..a1dbb49 100644 --- a/FlippR-Driver/src/output/items/detail/EightDigitDisplay.h +++ b/FlippR-Driver/src/output/items/detail/EightDigitDisplay.h @@ -31,7 +31,7 @@ public: ~EightDigitDisplay() override = default; - void write_score(unsigned int score) override + void write_score(uint64_t score) override { detail::Display::write_score(score, 8); } diff --git a/FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h b/FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h index bde4989..7c1054b 100644 --- a/FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h +++ b/FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h @@ -27,7 +27,7 @@ public: CLOG(DEBUG, OUTPUT_LOGGER) << "Created SevenDigitDisplay " << name << " with address " << int{this->address}; } - void write_score(unsigned int score) override + void write_score(uint64_t score) override { detail::Display::write_score(score, 7); }