Fix bugs appearing from fuzzing.
diff --git a/generator/sections/gen-section-cxl-protocol.c b/generator/sections/gen-section-cxl-protocol.c
index 64326f9..85457ce 100644
--- a/generator/sections/gen-section-cxl-protocol.c
+++ b/generator/sections/gen-section-cxl-protocol.c
@@ -45,6 +45,13 @@
reserved = (UINT32*)(bytes + 112);
*reserved = 0; //Reserved bytes 112-115.
+ //If the device is a host downstream port, serial/capability structure is invalid.
+ if (cxl_agent_type != 0)
+ {
+ for (int i=0; i<68; i++)
+ *(bytes + 40 + i) = 0; //Device serial & capability structure.
+ }
+
//Set expected values.
UINT16* dvsec_length_field = (UINT16*)(bytes + 108);
UINT16* error_log_len_field = (UINT16*)(bytes + 110);