[vbox-dev] Fix for nocrt vector implementation
Martin Fleisz
martin.fleisz at thincast.com
Fri Dec 16 08:42:17 GMT 2022
Hi Andreas,
thanks! I have found another bug and have attached a fix for it.
The problem is that if you call end() on an empty vector the current
implementation tries to de-reference a NULL pointer and crashes.
I'm submitting this patch under the MIT license.
Best regards and have a nice weekend,
Martin Fleisz
Thincast Technologies GmbH
diff --git include/iprt/nocrt/vector include/iprt/nocrt/vector
index 607a75097d3..bbb1acd9de3 100644
--- include/iprt/nocrt/vector
+++ include/iprt/nocrt/vector
@@ -259,17 +259,17 @@ namespace std
iterator end() RT_NOEXCEPT
{
- return iterator(&m_paItems[m_cItems]);
+ return iterator(m_paItems + m_cItems);
}
const_iterator end() const RT_NOEXCEPT
{
- return const_iterator(&m_paItems[m_cItems]);
+ return const_iterator(m_paItems + m_cItems);
}
const_iterator cend() const RT_NOEXCEPT
{
- return const_iterator(&m_paItems[m_cItems]);
+ return const_iterator(m_paItems + m_cItems);
}
/** @} */
On 15.12.2022 14:39, Andreas Löffler wrote:
> Hello Martin,
>
> thanks for reporting this and for the fix! I'll take care of it.
>
>
--
Martin Fleisz, Development Manager
Thincast Technologies GmbH Tel: +43-720-699 844-70
Bahnhofplatz 7/3 Fax: +43-2236-328 311
2340 Moedling, Austria http://www.thincast.com
More information about the vbox-dev
mailing list