aboutsummaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-07-02 15:08:57 +0200
committerHampusM <hampus@hampusmat.com>2022-07-02 15:08:57 +0200
commit33f5395f99cf5f93d2e782933129ed5fc2fde091 (patch)
tree75a6fdee2fd89649dfc63ac1b005c9def4f60fe5 /src/engine
parent578cf43e9c8384aab463aa2a33c5be00e46dc999 (diff)
fix: prevent opening too large RLE filesHEADmaster
This will prevent heap-buffer-overflows from occuring when opening RLE files with pattern sizes exceeding the current terminal size
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/data/bounds.cpp5
-rw-r--r--src/engine/data/bounds.hpp2
2 files changed, 7 insertions, 0 deletions
diff --git a/src/engine/data/bounds.cpp b/src/engine/data/bounds.cpp
index bee98ba..ad67ad2 100644
--- a/src/engine/data/bounds.cpp
+++ b/src/engine/data/bounds.cpp
@@ -85,3 +85,8 @@ auto Bounds::operator-(const Bounds &rhs) const noexcept -> Bounds
return new_bounds;
}
+
+auto Bounds::operator>(const Bounds &rhs) const noexcept -> bool
+{
+ return (_width > rhs._width) || _height > rhs._height;
+}
diff --git a/src/engine/data/bounds.hpp b/src/engine/data/bounds.hpp
index 2375d77..1a775b7 100644
--- a/src/engine/data/bounds.hpp
+++ b/src/engine/data/bounds.hpp
@@ -45,6 +45,8 @@ public:
auto operator-(const Bounds &rhs) const noexcept -> Bounds;
+ auto operator>(const Bounds &rhs) const noexcept -> bool;
+
private:
Value _width = 0U;
Value _height = 0U;