C 언어의 `defer` 키워드: 메모리 누수 방지를 위한 기습 공격
2025-03-19
C 언어에 새로운 기능인 `defer`가 추가됩니다. 이는 범용적인 '되돌리기' 메커니즘으로, 코드 블록이 종료되는 방식에 관계없이 일련의 문장을 실행하도록 보장합니다. 메모리 해제나 뮤텍스 잠금 해제 등 리소스 정리에 필수적입니다. `defer`는 기존 컴파일러 확장 및 다른 언어의 유사한 기능을 기반으로 합니다. 이 글에서는 `defer`의 기능, 범위, Go 등 다른 언어와의 차이점을 사용 예시와 함께 자세히 설명합니다. 저자는 C 코드의 안전성과 유지 관리성을 높이고 CVE-2021-3744와 같은 메모리 누수를 방지하기 위해 컴파일러 공급업체에 `defer`의 신속한 구현을 촉구합니다.
개발