From 8abedf263e95fc9e85466010a790c5ae494359ab Mon Sep 17 00:00:00 2001 From: Sam Haves Date: Fri, 9 Jan 2026 15:31:27 -0800 Subject: [PATCH] Add checks for nullptr content_type and extension in mjpDecoder registration. PiperOrigin-RevId: 854365689 Change-Id: I025f5ab844dd4cf19f7d5f223430e27fd23a0924 --- src/engine/engine_plugin.cc | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/engine/engine_plugin.cc b/src/engine/engine_plugin.cc index f55eddb8..361cf6ae 100644 --- a/src/engine/engine_plugin.cc +++ b/src/engine/engine_plugin.cc @@ -297,14 +297,24 @@ std::string_view GlobalTable::ObjectKey(const mjpDecoder& decoder) { // return true if two resource providers are identical template <> bool GlobalTable::ObjectEqual(const mjpDecoder& d1, const mjpDecoder& d2) { - // check if two resource providers are identical - if (!(CaseInsensitiveEqual(d1.content_type, d2.content_type) && - CaseInsensitiveEqual(d1.extension, d2.extension) && - d1.decode == d2.decode && - d1.can_decode == d2.can_decode)) { - return false; + // check content_type + bool content_type_match = false; + if (d1.content_type && d2.content_type) { + content_type_match = CaseInsensitiveEqual(d1.content_type, d2.content_type); + } else { + content_type_match = (d1.content_type == d2.content_type); } - return true; + + // check extension + bool extension_match = false; + if (d1.extension && d2.extension) { + extension_match = CaseInsensitiveEqual(d1.extension, d2.extension); + } else { + extension_match = (d1.extension == d2.extension); + } + + return content_type_match && extension_match && d1.decode == d2.decode && + d1.can_decode == d2.can_decode; } template <>