[RHEL] ASan으로 corrupted size vs. prev_size 오류 해결하기
카테고리: Linux(RHEL, Ubuntu)
문제 상황 RHEL 7에서 사용하던 C++ 프로그램을 RHEL 8로 이전한 뒤 free()를 실행하면서 아래와 같은 오류로 종료되는 문제가 발생했다. corrupted size vs. prev_size glibc가 힙 청크의 크기 정보 불일치를 발견했을 때 발생하는 오류다.1 오류가 발견되는 해제 위치와 실제 메모리를 손상시킨 쓰기 위치는 다를 수 있어, ASan으로 잘못된 접근을 추적했다. 문제 해결 1. ASan 설치와 컴파일 설정 ASan(AddressSanitizer)은 C/C++ 프로그램의 메모리 오류를 실행 중에 검출하는 도구다. 컴파일 시 검사 코드를 삽입하고 런타임 라이브러리와 함께 동작해, 버퍼 범위를 벗어난 접근이나 해제된 메모리 사용 등을 오류 위치와 호출 경로로 알려준다.2