diff --git a/wpilibc/src/main/native/cpp/DriverStation.cpp b/wpilibc/src/main/native/cpp/DriverStation.cpp index 55bfc510aa..2b06ecf4f3 100644 --- a/wpilibc/src/main/native/cpp/DriverStation.cpp +++ b/wpilibc/src/main/native/cpp/DriverStation.cpp @@ -456,11 +456,15 @@ int DriverStation::GetJoystickAxisType(int stick, int axis) { FRC_ReportError(warn::BadJoystickIndex, "stick {} out of range", stick); return -1; } + if (axis < 0 || axis >= HAL_kMaxJoystickAxes) { + FRC_ReportError(warn::BadJoystickAxis, "axis {} out of range", axis); + return -1; + } HAL_JoystickDescriptor descriptor; HAL_GetJoystickDescriptor(stick, &descriptor); - return static_cast(descriptor.axisTypes); + return descriptor.axisTypes[axis]; } bool DriverStation::IsJoystickConnected(int stick) {