loader: Grab next before destroying the data
diff --git a/loader/loader.c b/loader/loader.c
index d190b8b..3ad1198 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -599,8 +599,11 @@
 {
     ptr_inst->total_icd_count--;
     free(icd->gpus);
-    for (struct loader_device *dev = icd->logical_device_list; dev; dev = dev->next)
+    for (struct loader_device *dev = icd->logical_device_list; dev; ) {
+        struct loader_device *next_dev = dev->next;
         loader_destroy_logical_device(dev);
+        dev = next_dev;
+    }
 
     free(icd);
 }