diff options
author | Cathal Corbett <cathal.corbett@arm.com> | 2021-11-23 11:49:23 +0000 |
---|---|---|
committer | Cathal Corbett <cathal.corbett@arm.com> | 2021-11-23 16:52:46 +0000 |
commit | bddb2583f2fe3529787f55a4143b24db42951721 (patch) | |
tree | 37061e1bb32cc1d466cc04cdfbd85665c8542aa0 /include/armnn/Types.hpp | |
parent | f7b5011298367c6d635b17ad029c627076072198 (diff) | |
download | armnn-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/armnn/Types.hpp')
-rw-r--r-- | include/armnn/Types.hpp | 16 |
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; } |