From 9dd9461e655088240cc09d3541cbf7f5c6bb91f9 Mon Sep 17 00:00:00 2001 From: Sumit Agarwal Date: Fri, 22 Dec 2023 11:03:34 -0800 Subject: [PATCH] Fix crash in PadFusion (#18557) ### Description This makes a minimal change to address a crash caused by the PadFusion pass. This pass assumed that the "pads" attribute of a child node existed, and it now skips when it's missing. ### Motivation and Context Co-authored-by: Jeff Bloomfield <38966965+jeffbloo@users.noreply.github.com> --- onnxruntime/core/optimizer/pad_fusion.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/onnxruntime/core/optimizer/pad_fusion.cc b/onnxruntime/core/optimizer/pad_fusion.cc index b25e7618802dd..a1c7f8de9e6fe 100644 --- a/onnxruntime/core/optimizer/pad_fusion.cc +++ b/onnxruntime/core/optimizer/pad_fusion.cc @@ -48,6 +48,11 @@ bool PadFusion::SatisfyCondition(const Graph& graph, const Node& node, const log return false; } + // This pass currently assumed that this attribute already exists on the child node + if (child_node.GetAttributes().find("pads") == child_node.GetAttributes().end()) { + return false; + } + const NodeAttributes& pad_attributes = node.GetAttributes(); if (pad_attributes.find("mode") != pad_attributes.end() && pad_attributes.at("mode").s() != "constant") {