Commit c4b5a9d5 authored by Pavel Emelyanov's avatar Pavel Emelyanov

vma: Don't close socket's inode as fd

The vm_socket_id is union with vm_file_fd and calling
close on it is wrong.
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 7051e2e9
...@@ -110,13 +110,22 @@ bool privately_dump_vma(struct vma_area *vma) ...@@ -110,13 +110,22 @@ bool privately_dump_vma(struct vma_area *vma)
return true; return true;
} }
static void close_vma_file(struct vma_area *vma)
{
if (vma->vm_file_fd < 0)
return;
if (vma->vma.status & VMA_AREA_SOCKET)
return;
close(vma->vm_file_fd);
}
void free_mappings(struct vm_area_list *vma_area_list) void free_mappings(struct vm_area_list *vma_area_list)
{ {
struct vma_area *vma_area, *p; struct vma_area *vma_area, *p;
list_for_each_entry_safe(vma_area, p, &vma_area_list->h, list) { list_for_each_entry_safe(vma_area, p, &vma_area_list->h, list) {
if (vma_area->vm_file_fd > 0) close_vma_file(vma_area);
close(vma_area->vm_file_fd);
free(vma_area); free(vma_area);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment