Langsung ke konten

Arsip

Mmap

1 artikel
Linux 17 Sep 2026 4 min read

Truncating File yang Dipetakan Dapat Memicu SIGBUS

Sebuah process dapat tetap memiliki rentang address mmap() yang valid setelah operasi lain mengecilkan backing file, lalu menerima SIGBUS ketika menyentuh mapped page yang berada di luar akhir file baru. Mapping-nya sendiri tidak hilang. Backing object-nya tidak lagi mencakup setiap page yang semula direferensikan oleh virtual mapping. Boundary ini mudah terlewat karena mapping lifetime dan file size adalah state yang terpisah. Menutup file descriptor awal tidak membatalkan mapping yang sudah terbentuk, dan mengecilkan file tidak bertindak seperti munmap() pada setiap process yang memetakannya.