}staticintmmap_demo_mmap(structfile *file,structvm_area_struct *vma) { unsignedlongsize = vma->vm_end - vma->vm_start;//检查请求的内存大小是否合法if(size >BUF_SIZE)return-EINVAL;//将设备内存映射到用户空间if(remap_pfn_range(vma, vma->vm_start, virt_to_phys(buffer) >> PAGE_SHIFT +...
详见:http://www.makelinux.net/ldd3/chp-15-sect-2 随后在用户程序中简单掉用这个自定义的mmap函数就可以建立起页面映射,达到共享内存的目的了。 0x01 漏洞 越是简单好用的,就越容易出现问题。 函数remap_pfn_range()并不会检查传入的参数,它会完全按照需求的内存起始位置,所需长度,访问权限,去映射页面进用...
同时有些是用到其他资源,jvm也不会进行回收,类似Io流中的FileInputStream使用到了硬盘资源,垃圾回收器...