diff --git a/components/bl00mbox/bl00mbox_audio.c b/components/bl00mbox/bl00mbox_audio.c
index 9cf62fd5207e87a965780a1947fec17e50d142dc..243aa16fb2547b2e25cd2178436f79d67fa017a6 100644
--- a/components/bl00mbox/bl00mbox_audio.c
+++ b/components/bl00mbox/bl00mbox_audio.c
@@ -156,6 +156,7 @@ static void bl00mbox_audio_channel_render(bl00mbox_channel_t* chan,
         memset(out, 0, len * sizeof(int16_t));  // mute
         return;
     }
+    if (root == NULL) return; // clang garbage, undo asap
 
     int32_t acc[256];
     bool first = true;
@@ -177,7 +178,6 @@ static void bl00mbox_audio_channel_render(bl00mbox_channel_t* chan,
         root = root->next;
     }
 
-    if (root == NULL) return;
     for (uint16_t i = 0; i < len; i++) {
         if (adding) {
             out[i] =