diff --git a/hal/lib/athena/handles/HandlesInternal.cpp b/hal/lib/athena/handles/HandlesInternal.cpp index d2d1bf52c0..b1ff98282d 100644 --- a/hal/lib/athena/handles/HandlesInternal.cpp +++ b/hal/lib/athena/handles/HandlesInternal.cpp @@ -13,6 +13,7 @@ namespace hal { HalHandle createHandle(int16_t index, HalHandleEnum handleType) { if (index < 0) return HAL_HANDLE_NEGATIVE_INDEX; + if (handleType <= 0 || handleType > 127) return HAL_HANDLE_INVALID_TYPE; // set last 8 bits, then shift to first 8 bits HalHandle handle = handleType; handle = handle << 24; diff --git a/hal/lib/athena/handles/HandlesInternal.h b/hal/lib/athena/handles/HandlesInternal.h index 086831ce05..8717dc85d4 100644 --- a/hal/lib/athena/handles/HandlesInternal.h +++ b/hal/lib/athena/handles/HandlesInternal.h @@ -31,7 +31,7 @@ static inline HalHandleEnum getHandleType(HalHandle handle) { return (HalHandleEnum)((handle >> 24) & 0xff); } static inline bool isHandleType(HalHandle handle, HalHandleEnum handleType) { - return handleType == getHandleType(handleType); + return handleType == getHandleType(handle); } static inline int16_t getHandleTypedIndex(HalHandle handle, HalHandleEnum enumType) {