다음을 통해 공유


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 및 정적 도구 로고 테스트 페이지를 참조하세요.