Deleted Added
full compact
33c33
< __FBSDID("$FreeBSD: head/sys/i386/linux/imgact_linux.c 230132 2012-01-15 13:23:18Z uqs $");
---
> __FBSDID("$FreeBSD: head/sys/i386/linux/imgact_linux.c 231885 2012-02-17 23:47:16Z kib $");
67d66
< vm_offset_t buffer;
68a68
> ssize_t aresid;
147,152c147,155
< error = vm_mmap(kernel_map, &buffer,
< round_page(a_out->a_text + a_out->a_data + file_offset),
< VM_PROT_READ, VM_PROT_READ, 0, OBJT_VNODE,
< imgp->vp, trunc_page(file_offset));
< if (error)
< goto fail;
---
> error = vn_rdwr(UIO_READ, imgp->vp, (void *)vmaddr, file_offset,
> a_out->a_text + a_out->a_data, UIO_USERSPACE, 0,
> curthread->td_ucred, NOCRED, &aresid, curthread);
> if (error != 0)
> goto fail;
> if (aresid != 0) {
> error = ENOEXEC;
> goto fail;
> }
154,162d156
< error = copyout((void *)(uintptr_t)(buffer + file_offset),
< (void *)vmaddr, a_out->a_text + a_out->a_data);
<
< vm_map_remove(kernel_map, buffer,
< buffer + round_page(a_out->a_text + a_out->a_data + file_offset));
<
< if (error)
< goto fail;
<