diff --git a/libcpu/mips/common/exception.c b/libcpu/mips/common/exception.c index ca048a926b..5c458c9eb1 100644 --- a/libcpu/mips/common/exception.c +++ b/libcpu/mips/common/exception.c @@ -82,13 +82,14 @@ exception_func_t sys_exception_handlers[RT_EXCEPTION_MAX]; */ exception_func_t rt_set_except_vector(int n, exception_func_t func) { - exception_func_t old_handler = sys_exception_handlers[n]; + exception_func_t old_handler; - if ((n == 0) || (n > RT_EXCEPTION_MAX) || (!func)) + if ((n < 0) || (n >= RT_EXCEPTION_MAX) || (!func)) { return 0; } + old_handler = sys_exception_handlers[n]; sys_exception_handlers[n] = func; return old_handler;