TECH 으로 돌아가기
TECH HACKER NEWS 오늘 2분 읽기 39 READS

C의 가장 위험한 기능 longjmp, 메모리 안전하게 만들기

Fil-C는 기존 C/C++ 코드를 거의 그대로 컴파일하면서도 버퍼 오버플로우와 use-after-free 같은 메모리 오류를 원천 차단하는 메모리 안전 컴파일러입니다. 비결은 모든 포인터에 경계와 수명 정보를 담은 '능력(capability)'을 부여하고 가비지 컬렉터로 객체 수명을 추적하는 것입니다. 이 글은 그중에서도 악명 높은 setjmp/longjmp와 컨텍스트 스위칭(ucontext, 코루틴) 문제를 다룹니다. 이 기능들은 스택 프레임을 건너뛰어 실행 흐름을 되돌리고 스택 자체를 통째로 교체하기 때문에, 안전성을 보장하기가 가장 까다로운 영역입니다. Fil-C는 각 스택을 GC가 추적 가능한 객체로 관리하고, 점프 대상이 이미 만료된 컨텍스트인지 검증해 잘못된 longjmp를 막습니다. 핵심 통찰은, Rust로 다시 작성하지 않고도 C의 가장 저수준 관용구마저 안전하게 만들 수 있다는 점입니다. 레거시 C 자산을 안고 가야 하는 개발자에게 의미 있는 대안입니다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://fil-c.org/context_switches
SHARE
처리 중...