계: Code Quality

코드 품질이 낮으면 예측할 수 없는 동작이 발생합니다. 사용자 입장에서는 사용 편의성이 떨어지는 것으로 나타나는 경우가 많습니다. 공격자에게는 예상치 못한 방법으로 시스템에 부담을 줄 수 있는 기회가 됩니다.

Undefined Behavior

Abstract
이 함수의 동작은 제어 매개 변수에 특정 값이 설정되지 않은 한 정의되지 않습니다.
Explanation
libc 용 Linux Standard Base 규격 2.0.1은 일부 내부 함수의 인수에 제약 조건을 적용합니다[1]. 제약 조건을 만족하지 못하면 함수의 동작이 정의되지 않습니다.


1은 다음 file system 함수의 첫 번째 매개 변수(버전 번호)에 전달해야 합니다.


__xmknod


2는 다음 와이드 문자열 함수의 세 번째 매개 변수(그룹 인수)에 전달해야 합니다.


__wcstod_internal
__wcstof_internal
_wcstol_internal
__wcstold_internal
__wcstoul_internal


3은 다음 file system 함수의 첫 번째 매개 변수(버전 번호)에 전달해야 합니다.


__xstat
__lxstat
__fxstat
__xstat64
__lxstat64
__fxstat64

References
[1] The Linux Standard Base Specification 2.0.1, Interfaces Definitions for libc.
[2] Standards Mapping - Common Weakness Enumeration CWE ID 475
[3] Standards Mapping - Motor Industry Software Reliability Association (MISRA) C Guidelines 2012 Rule 1.3
desc.semantic.cpp.undefined_behavior