Security fuzz address sanitizer fix Bug #2 and #3 (#21528)

### Description
Security fuzz test with address sanitizer found several bugs
This commit is contained in:
jingyanwangms 2024-07-27 11:10:52 -07:00 коммит произвёл GitHub
Родитель 1ce160883f
Коммит 48fb8a7e56
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
2 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -143,6 +143,8 @@ Status GptSubgraph::Validate(const std::vector<const NodeArg*>& subgraph_inputs,
// Past state shape is like (2, batch_size, num_heads, past_seq_len, hidden_size/num_heads).
const ONNX_NAMESPACE::TensorShapeProto* past_shape = subgraph_inputs[3]->Shape();
ORT_RETURN_IF(past_shape == nullptr,
"subgraph past state cannot be nullptr");
ORT_RETURN_IF(past_shape->dim_size() != 5,
"subgraph past state is expected to have 5 dimension, got ", past_shape->dim_size());

Просмотреть файл

@ -210,7 +210,7 @@ Status AttentionFusion::ApplyImpl(Graph& graph, bool& modified, int graph_level,
if ((node.GetOutputEdgesCount() >= 2 && node.GetOutputEdgesCount() <= 6) && // Add node.GetOutputEdgesCount() == 5/6 for distilbert
graph_utils::IsSupportedOptypeVersionAndDomain(node, "LayerNormalization", {1, 17}, kOnnxDomain) &&
graph_utils::IsSupportedProvider(node, GetCompatibleExecutionProviders())) {
graph_utils::IsSupportedProvider(node, GetCompatibleExecutionProviders()) && node.InputDefs().size() > 2) {
// Get hidden size from layer norm bias tensor shape.
const NodeArg& layer_norm_bias = *(node.InputDefs()[2]);
if (!optimizer_utils::IsShapeKnownOnAllDims(layer_norm_bias, 1)) {