From b4a58fc8c01af85aa500dc6860ce4b6e0277ed1e Mon Sep 17 00:00:00 2001 From: Abhinay Kukkadapu Date: Thu, 9 Apr 2026 17:09:38 -0700 Subject: [PATCH] Add isTensor guard in FreeCall to prevent abort on corrupted PTE Summary: Fixing T263039905 Reviewed By: lucylq Differential Revision: D99727453 --- runtime/executor/method.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/runtime/executor/method.cpp b/runtime/executor/method.cpp index 0ddd34f7cd3..606b2460155 100644 --- a/runtime/executor/method.cpp +++ b/runtime/executor/method.cpp @@ -1521,8 +1521,17 @@ Error Method::execute_instruction() { // We know that instr_args_as_FreeCall is non-null because it was checked // at init time. auto free_call = instruction->instr_args_as_FreeCall(); - auto t = mutable_value(free_call->value_index()).toTensor(); - internal::reset_data_ptr(t); + auto& val = mutable_value(free_call->value_index()); + if (val.isTensor()) { + auto& t = val.toTensor(); + internal::reset_data_ptr(t); + } else { + ET_LOG( + Error, + "FreeCall target at index %u is not a Tensor", + static_cast(free_call->value_index())); + err = Error::InvalidProgram; + } } break; default: ET_LOG(