소프트웨어 개발(SW Dev)/Rule(CERT C)
CERT C - ARR 규칙 목록
flowhistory
2024. 11. 11. 13:00
ARR
Arrays (ARR) - 배열
배열과 관련된 내용을 다루는 카테고리입니다.
배열의 안전한 사용을 위한 규칙이 포함되어 있습니다.
Rule Number | Rule Definition | 설명 |
ARR02-C | 암시적으로 초기화된 경우라도 배열의 경계를 명시적으로 지정하라 | 배열의 경계를 명시적으로 지정해야 합니다. 암시적으로 초기화된 경우라도 배열의 경계를 벗어나지 않도록 주의해야 합니다. 배열의 크기를 명시적으로 지정하는 측면에 초점을 두고 있습니다. |
ARR30-C | 배열의 인덱스가 유효한 범위 안에 있음을 보장하라 | 배열의 인덱스가 유효한 범위 내에 있음을 확인해야 한다고 강조합니다. 배열의 인덱스가 유효하지 않으면, 예를 들어 배열의 경계를 벗어난 경우, 정의되지 않은 동작이 발생할 수 있습니다. 배열의 인덱스를 검사하여 유효한 범위 내에 있는지 확인하고, 유효하지 않은 경우 적절한 조치를 취해야 합니다. 배열의 인덱스가 유효한 범위 내에 있음을 보장하는 측면에 초점을 두고 있습니다. |
ARR32-C | 가변 배열에서 크기를 나타내는 인자가 유효한 범위에 있음을 보장하라 | 가변 배열 (Variable length arrays, VLAs)에서 크기를 나타내는 인자가 유효한 범위 내에 있어야 합니다. 인자가 유효하지 않으면 배열의 크기를 정확하게 알 수 없으며, 버퍼 오버런과 같은 문제가 발생할 수 있습니다. |
ARR36-C | 두 개의 서로 다른 배열을 가리키는 포인터를 빼거나 비교하지 마라 | 두 개의 포인터를 뺄 때는 반드시 같은 배열 객체의 요소를 가리키도록 해야 합니다. 또는 배열 객체의 마지막 요소 바로 다음을 가리키는 경우에도 허용됩니다. 그렇지 않은 경우, 이 연산은 정의되지 않은 동작으로 간주됩니다. |
ARR37-C | 배열이 아닌 객체를 가리키는 포인터에 정수를 더하거나 빼지 마라 | 두 개의 포인터를 뺄 때는 반드시 같은 배열 객체의 요소를 가리키도록 해야 합니다. 또는 배열 객체의 마지막 요소 바로 다음을 가리키는 경우에도 허용됩니다. 그렇지 않은 경우, 이 연산은 정의되지 않은 동작으로 간주됩니다. |
728x90