summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1996-03-10 23:25:17 +0000
committerpeter <peter@FreeBSD.org>1996-03-10 23:25:17 +0000
commit83a82ed7709eab9761258b33c99ca4443989ee99 (patch)
treeaee2e747f4afb43c337cfaa13e2dca7dc51b7c1f /sys
parent43ddca3392910b9f81870eaaf86c841f4cdb40f3 (diff)
downloadFreeBSD-src-83a82ed7709eab9761258b33c99ca4443989ee99.zip
FreeBSD-src-83a82ed7709eab9761258b33c99ca4443989ee99.tar.gz
Fix the vm_map_remove and vm_map_protect calls.. Somewhere along the
line, these had got (start, length) arguments instead of (start, end) args. This could be the cause of Robert Sanders lockups with ZMAGIC binaries.
Diffstat (limited to 'sys')
-rw-r--r--sys/compat/linux/linux_misc.c6
-rw-r--r--sys/i386/linux/imgact_linux.c12
-rw-r--r--sys/i386/linux/linux_misc.c6
3 files changed, 13 insertions, 11 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c
index 6e736b5..bf242d9 100644
--- a/sys/compat/linux/linux_misc.c
+++ b/sys/compat/linux/linux_misc.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_misc.c,v 1.13 1996/03/02 19:37:57 peter Exp $
+ * $Id: linux_misc.c,v 1.14 1996/03/04 21:03:07 peter Exp $
*/
#include <sys/param.h>
@@ -344,7 +344,7 @@ printf("uselib: Non page aligned binary %d\n", file_offset);
/* release temporary kernel space */
vm_map_remove(kernel_map, buffer,
- round_page(a_out->a_text + a_out->a_data + file_offset));
+ buffer + round_page(a_out->a_text + a_out->a_data + file_offset));
if (error)
goto cleanup;
@@ -400,7 +400,7 @@ cleanup:
* Release the kernel mapping.
*/
if (a_out)
- vm_map_remove(kernel_map, (vm_offset_t)a_out, PAGE_SIZE);
+ vm_map_remove(kernel_map, (vm_offset_t)a_out, (vm_offset_t)a_out + PAGE_SIZE);
return error;
}
diff --git a/sys/i386/linux/imgact_linux.c b/sys/i386/linux/imgact_linux.c
index e070aa2..4d6d3c1 100644
--- a/sys/i386/linux/imgact_linux.c
+++ b/sys/i386/linux/imgact_linux.c
@@ -28,7 +28,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: imgact_linux.c,v 1.9 1996/03/02 19:37:47 peter Exp $
+ * $Id: imgact_linux.c,v 1.10 1996/03/10 08:42:49 sos Exp $
*/
#include <sys/param.h>
@@ -146,7 +146,7 @@ exec_linux_imgact(imgp)
a_out->a_text + a_out->a_data);
vm_map_remove(kernel_map, buffer,
- round_page(a_out->a_text + a_out->a_data + file_offset));
+ buffer + round_page(a_out->a_text + a_out->a_data + file_offset));
if (error)
return error;
@@ -154,9 +154,11 @@ exec_linux_imgact(imgp)
/*
* remove write enable on the 'text' part
*/
- error = vm_map_protect(&vmspace->vm_map, vmaddr,
- a_out->a_text,
- VM_PROT_EXECUTE|VM_PROT_READ, TRUE);
+ error = vm_map_protect(&vmspace->vm_map,
+ vmaddr,
+ vmaddr + a_out->a_text,
+ VM_PROT_EXECUTE|VM_PROT_READ,
+ TRUE);
if (error)
return error;
}
diff --git a/sys/i386/linux/linux_misc.c b/sys/i386/linux/linux_misc.c
index 6e736b5..bf242d9 100644
--- a/sys/i386/linux/linux_misc.c
+++ b/sys/i386/linux/linux_misc.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_misc.c,v 1.13 1996/03/02 19:37:57 peter Exp $
+ * $Id: linux_misc.c,v 1.14 1996/03/04 21:03:07 peter Exp $
*/
#include <sys/param.h>
@@ -344,7 +344,7 @@ printf("uselib: Non page aligned binary %d\n", file_offset);
/* release temporary kernel space */
vm_map_remove(kernel_map, buffer,
- round_page(a_out->a_text + a_out->a_data + file_offset));
+ buffer + round_page(a_out->a_text + a_out->a_data + file_offset));
if (error)
goto cleanup;
@@ -400,7 +400,7 @@ cleanup:
* Release the kernel mapping.
*/
if (a_out)
- vm_map_remove(kernel_map, (vm_offset_t)a_out, PAGE_SIZE);
+ vm_map_remove(kernel_map, (vm_offset_t)a_out, (vm_offset_t)a_out + PAGE_SIZE);
return error;
}
OpenPOWER on IntegriCloud