From 49e5938eb5332adc32178a053db15f952833ee61 Mon Sep 17 00:00:00 2001
From: Martine Lenders <mail@martine-lenders.eu>
Date: Mon, 16 Mar 2015 16:13:03 +0100
Subject: [PATCH] ng_netif: cleanup array after remove

---
 sys/net/crosslayer/ng_netif/ng_netif.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/sys/net/crosslayer/ng_netif/ng_netif.c b/sys/net/crosslayer/ng_netif/ng_netif.c
index 29fef6ba37..fe70a0381e 100644
--- a/sys/net/crosslayer/ng_netif/ng_netif.c
+++ b/sys/net/crosslayer/ng_netif/ng_netif.c
@@ -60,7 +60,9 @@ int ng_netif_add(kernel_pid_t pid)
 
 void ng_netif_remove(kernel_pid_t pid)
 {
-    for (int i = 0; i < NG_NETIF_NUMOF; i++) {
+    int i;
+
+    for (i = 0; i < NG_NETIF_NUMOF; i++) {
         if (ifs[i] == pid) {
             ifs[i] = KERNEL_PID_UNDEF;
 
@@ -68,10 +70,15 @@ void ng_netif_remove(kernel_pid_t pid)
                 if_handler[j].remove(pid);
             }
 
-            return;
+            break;
         }
     }
 
+    for (; (i < (NG_NETIF_NUMOF - 1)) && (ifs[i + 1] != KERNEL_PID_UNDEF); i++) {
+        ifs[i] = ifs[i + 1];
+    }
+
+    ifs[i] = KERNEL_PID_UNDEF;  /* set in case of i == (NG_NETIF_NUMOF - 1) */
 }
 
 kernel_pid_t *ng_netif_get(size_t *size)
-- 
GitLab