From 33f5395f99cf5f93d2e782933129ed5fc2fde091 Mon Sep 17 00:00:00 2001
From: HampusM <hampus@hampusmat.com>
Date: Sat, 2 Jul 2022 15:08:57 +0200
Subject: fix: prevent opening too large RLE files

This will prevent heap-buffer-overflows from occuring when opening RLE files with pattern sizes exceeding the current terminal size
---
 src/engine/data/bounds.cpp | 5 +++++
 src/engine/data/bounds.hpp | 2 ++
 2 files changed, 7 insertions(+)

(limited to 'src/engine/data')

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;
-- 
cgit v1.2.3-18-g5258