aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCathal Corbett <cathal.corbett@arm.com>2021-11-23 11:49:23 +0000
committerCathal Corbett <cathal.corbett@arm.com>2021-11-23 16:52:46 +0000
commitbddb2583f2fe3529787f55a4143b24db42951721 (patch)
tree37061e1bb32cc1d466cc04cdfbd85665c8542aa0 /include
parentf7b5011298367c6d635b17ad029c627076072198 (diff)
downloadarmnn-bddb2583f2fe3529787f55a4143b24db42951721.tar.gz
IVGCVSW-6610 No bounds checking performed when indexing PermutationVector elements.
* Added out of bounds index error checking to PermutationVector operator[] method in Types.hpp. * Added armnn unit tests to UnitsTests.cpp to check error when using PermutationVector alone and with TransposeDescriptor and PermuteDescriptor. * Added pyarmnn unit test to check error when using PermutationVector. Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: Ie5a8090f07b571a6bdf79a8cad621c31cc1891b7
Diffstat (limited to 'include')
-rw-r--r--include/armnn/Types.hpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index b5a4266e36..880a6dd816 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -306,7 +306,21 @@ public:
PermutationVector(std::initializer_list<ValueType> dimMappings);
- ValueType operator[](SizeType i) const { return m_DimMappings.at(i); }
+ ///
+ /// Indexing method with out-of-bounds error checking for the m_DimMappings array.
+ /// @param i - integer value corresponding to index of m_DimMappings array to retrieve element from.
+ /// @return element at index i of m_DimMappings array.
+ /// @throws InvalidArgumentException when indexing out-of-bounds index of m_DimMappings array.
+ ///
+ ValueType operator[](SizeType i) const
+ {
+ if (i >= GetSize())
+ {
+ throw InvalidArgumentException("Invalid indexing of PermutationVector of size " + std::to_string(GetSize())
+ + " at location [" + std::to_string(i) + "].");
+ }
+ return m_DimMappings.at(i);
+ }
SizeType GetSize() const { return m_NumDimMappings; }