[tflite] Ensure MatchingDim
does not allow buffer overflow.
We check in `MatchingDim` that both arguments have the same dimensionality, however that is a `DCHECK` only enabled if building in debug mode. Hence, it could be possible to cause buffer overflows by passing in a tensor with larger dimensions as the second argument. To fix, we now make `MatchingDim` return the minimum of the two sizes. A much better fix would be to return a status object but that requires refactoring a large part of the codebase for minor benefits. PiperOrigin-RevId: 332526127 Change-Id: If627d0d2c80a685217b6e0d1e64b0872dbf1c5e4
This commit is contained in:
parent
7bb92eeb9f
commit
79deaeb06c
@ -432,7 +432,7 @@ int MatchingArraySize(const ArrayType1& array1, int index1,
|
||||
inline int MatchingDim(const RuntimeShape& shape1, int index1,
|
||||
const RuntimeShape& shape2, int index2) {
|
||||
TFLITE_DCHECK_EQ(shape1.Dims(index1), shape2.Dims(index2));
|
||||
return shape1.Dims(index1);
|
||||
return std::min(shape1.Dims(index1), shape2.Dims(index2));
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
|
Loading…
x
Reference in New Issue
Block a user