diff --git a/src/rtos/uCOS-III.c b/src/rtos/uCOS-III.c
index 9021167dbca38f3ca035db0168234ecec646139e..0a0fb3e9e7e785f56cebe6dfe6ebbead2dd3b33d 100644
--- a/src/rtos/uCOS-III.c
+++ b/src/rtos/uCOS-III.c
@@ -300,6 +300,11 @@ static int uCOS_III_update_threads(struct rtos *rtos)
 		return retval;
 	}
 
+	if (rtos_running != 1 && rtos_running != 0) {
+		LOG_ERROR("uCOS-III: invalid RTOS running value");
+		return ERROR_FAIL;
+	}
+
 	if (!rtos_running) {
 		rtos->thread_details = calloc(1, sizeof(struct thread_detail));
 		if (rtos->thread_details == NULL) {