diff --git a/wled00/e131.cpp b/wled00/e131.cpp index bf37fa4e..b332aa0b 100644 --- a/wled00/e131.cpp +++ b/wled00/e131.cpp @@ -18,10 +18,16 @@ void handleDDPPacket(e131_packet_t* p) { // reject unsupported color data types (only RGB and RGBW are supported) // WLEDMM allow legacy "undefined" datatype, and legacy (but wrong) datatype=0x01 if ( p->dataType != 0 && p->dataType != 0x01 && - p->dataType != DDP_TYPE_RGB24 && p->dataType != DDP_TYPE_RGBW32) return; + p->dataType != DDP_TYPE_RGB24 && p->dataType != DDP_TYPE_RGBW32) { + DEBUG_PRINTF("handleDDPPacket(); unsupported datatype 0x%02x\n", p->dataType); + return; + } // reject status and config packets (not implemented) - if (p->destination == DDP_ID_STATUS || p->destination == DDP_ID_CONFIG) return; + if (p->destination == DDP_ID_STATUS || p->destination == DDP_ID_CONFIG) { + DEBUG_PRINTF("handleDDPPacket(): unsupported destination 0x%02x\n", p->destination); + return; + } //reject late packets belonging to previous frame (assuming 4 packets max. before push) #if 0 // WLEDMM fixme - we definitely have more than 5-10 packets per frame !!! @@ -98,6 +104,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){ uint8_t seq = 0, mde = REALTIME_MODE_E131; if (!receiveDirect) { exitRealtime(); return; } // WLEDMM kill switch + if (p == nullptr) return; // WLEDMM should not happen if (protocol == P_ARTNET) {