File tree Expand file tree Collapse file tree 3 files changed +17
-0
lines changed
Expand file tree Collapse file tree 3 files changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -133,6 +133,7 @@ def define_common_targets():
133133 ],
134134 deps = [
135135 "//executorch/schema:program" ,
136+ "//executorch/runtime/core/exec_aten/util:tensor_dimension_limit"
136137 ],
137138 visibility = [
138139 "//executorch/runtime/executor/..." ,
Original file line number Diff line number Diff line change 1010
1111#include < executorch/runtime/core/exec_aten/util/dim_order_util.h>
1212#include < executorch/runtime/core/exec_aten/util/scalar_type_util.h>
13+ #include < executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h>
1314#include < executorch/runtime/core/named_data_map.h>
1415#include < executorch/runtime/executor/memory_manager.h>
1516#include < executorch/runtime/executor/program.h>
@@ -58,6 +59,13 @@ Result<at::Tensor> parseTensor(
5859 s_tensor->sizes () != nullptr , InvalidProgram, " Missing sizes field" );
5960 size_t ndim = s_tensor->sizes ()->size ();
6061
62+ ET_CHECK_OR_RETURN_ERROR (
63+ ndim <= kTensorDimensionLimit ,
64+ InvalidProgram,
65+ " Tensor rank too large %" ET_PRIsize_t " > %zu" ,
66+ ndim,
67+ kTensorDimensionLimit )
68+
6169 ET_CHECK_OR_RETURN_ERROR (
6270 s_tensor->dim_order () != nullptr ,
6371 InvalidProgram,
Original file line number Diff line number Diff line change 1111#include < executorch/runtime/core/exec_aten/exec_aten.h>
1212#include < executorch/runtime/core/exec_aten/util/dim_order_util.h>
1313#include < executorch/runtime/core/exec_aten/util/scalar_type_util.h>
14+ #include < executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h>
1415#include < executorch/runtime/core/named_data_map.h>
1516#include < executorch/runtime/executor/memory_manager.h>
1617#include < executorch/runtime/executor/program.h>
@@ -62,6 +63,13 @@ Result<Tensor> parseTensor(
6263 const auto serialized_sizes = s_tensor->sizes ()->data ();
6364 const auto dim = s_tensor->sizes ()->size ();
6465
66+ ET_CHECK_OR_RETURN_ERROR (
67+ dim <= kTensorDimensionLimit ,
68+ InvalidProgram,
69+ " Tensor rank too large %" PRIu32 " > %zu" ,
70+ dim,
71+ kTensorDimensionLimit )
72+
6573 ET_CHECK_OR_RETURN_ERROR (
6674 s_tensor->dim_order () != nullptr ,
6775 InvalidProgram,
You can’t perform that action at this time.
0 commit comments