diff --git a/src/pipeline/dbc_loader.cpp b/src/pipeline/dbc_loader.cpp index 235856eb..c839853e 100644 --- a/src/pipeline/dbc_loader.cpp +++ b/src/pipeline/dbc_loader.cpp @@ -467,7 +467,12 @@ bool DBCFile::loadJSON(const std::vector& jsonData) { if (!std::isfinite(f)) f = 0.0f; std::memcpy(&fields[col], &f, 4); } else if (val.is_number_integer()) { - fields[col] = val.get(); + // Range-check: nlohmann throws on out-of-range get + // (negative or > UINT32_MAX). Catching at the field level + // keeps a single bad cell from killing the whole DBC load. + int64_t raw = val.get(); + if (raw < 0 || raw > 0xFFFFFFFFll) raw = 0; + fields[col] = static_cast(raw); } } }