용어 사전 coding 용어 페이지

Use-after-free

`free`한 뒤 더 이상 유효하지 않은 메모리를 다시 사용하는 오류

use-after-free #c#memory#debugging
English version

다른 이름

use after freeuaf

선수 개념

관련 개념

핵심 아이디어

use-after-freefree로 해제한 메모리를 다시 읽거나 쓰는 오류입니다. 겉으로는 이전 값이 그대로 남아 보여서 잠깐 정상처럼 보일 수 있지만, 이미 그 공간의 소유권은 끝났기 때문에 결과를 믿을 수 없습니다.

이 오류가 위험한 이유는 항상 바로 터지지 않기 때문입니다. 어떤 환경에서는 정상처럼 보이고, 어떤 환경에서는 곧바로 세그멘테이션 폴트가 납니다. 그래서 "잘 돌아가던데요"라는 착각을 만들기 쉬운 대표 버그입니다.

이 블로그에서의 역할

Mathbong에서는 동적 메모리 할당을 배운 직후 반드시 만나는 실수 유형으로 다룹니다. 포인터를 NULL로 바꾸는 습관, 소유권 정리, AddressSanitizer로 재현하는 흐름을 연결하는 핵심 개념입니다.

이 개념을 다루는 글