From a2dfe66038baef1efcf4938fc9028ea836d97141 Mon Sep 17 00:00:00 2001
From: sasan-golchin <ahmad.golchin@mail.polimi.it>
Date: Thu, 20 Oct 2016 16:37:10 +0200
Subject: [PATCH] Bug fixed in IntrusiveList: Deleting an already removed item
 is banned now to avoid undefined behaviour

---
 miosix/kernel/intrusive.h | 3 +++
 1 file changed, 3 insertions(+)
 mode change 100644 => 100755 miosix/kernel/intrusive.h

diff --git a/miosix/kernel/intrusive.h b/miosix/kernel/intrusive.h
old mode 100644
new mode 100755
index 1031d57f..b8c46dfc
--- a/miosix/kernel/intrusive.h
+++ b/miosix/kernel/intrusive.h
@@ -791,6 +791,9 @@ public:
      */
     iterator erase(iterator it)
     {
+        // Can't erase an item that is already erased
+        if ((*it)->next==nullptr || (*it)->prev==nullptr) return it;
+        // Can't erase the emptyListItem which is used for internal purposes
         if((*it)==&emptyListItem) return it;
         iterator result = it;
         result++;
-- 
GitLab