From 295fae0edca38a36d8031a7d3188a32396772b1b Mon Sep 17 00:00:00 2001 From: Dominick Grochowina Date: Sun, 11 May 2025 08:01:13 -0400 Subject: [PATCH] Fix nullptr segfault in VerilatedVcd::emitTimeChange() (#5980) --- docs/CONTRIBUTORS | 1 + include/verilated_vcd_c.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/CONTRIBUTORS b/docs/CONTRIBUTORS index 28cce9e65..28f3c1c1f 100644 --- a/docs/CONTRIBUTORS +++ b/docs/CONTRIBUTORS @@ -45,6 +45,7 @@ David Stanford David Turner Dercury Diego Roux +Dominick Grochowina Don Williamson Drew Ranck Drew Taussig diff --git a/include/verilated_vcd_c.cpp b/include/verilated_vcd_c.cpp index 6bc7896b6..4b6588522 100644 --- a/include/verilated_vcd_c.cpp +++ b/include/verilated_vcd_c.cpp @@ -193,7 +193,7 @@ void VerilatedVcd::emitTimeChange(uint64_t timeui) { // timestamp backup and overwrite it. // This is faster then checking on every signal change if time needs to // be emitted. Note buffer flushes may still emit a rare duplicate. - if (m_wrTimeEndp == m_writep) m_writep = m_wrTimeBeginp; + if (m_wrTimeBeginp && m_wrTimeEndp == m_writep) m_writep = m_wrTimeBeginp; m_wrTimeBeginp = m_writep; { printStr("#");