InfiniteLoop(Windows 드라이버 CodeQL 쿼리)
개요
루프 조건에서 서로 다른 너비 형식을 비교하면 루프가 종료되지 않을 수 있습니다.
권장
루프 조건에서 적절한 형식을 사용합니다.
예제
이 예제에서 비교 결과는 인수 값이 SHRT_MAX보다 크면 무한 루프가 발생할 수 있습니다.
void InfiniteLoop(int a)
{
for (short i = 0; i < a; i++) // BUG: infinite loop
{
// ...
}
}
버그를 수정하기 위해 i 변수의 형식을 의 너비와 일치하도록 변경합니다.
void NotInfiniteLoop(int a)
{
for (int i = 0; i < a; i++)
{
// ...
}
}
추가 정보
이 쿼리는 Microsoft GitHub CodeQL 리포지토리에서 찾을 수 있습니다. Windows 드라이버 개발자가 CodeQL을 다운로드하고 실행하는 방법에 대한 자세한 내용은 CodeQL 및 정적 도구 로고 테스트 페이지를 참조하세요.