# HG changeset patch
# User Edouard Tisserant <edouard.tisserant@gmail.com>
# Date 1538063776 -7200
# Node ID 2e2f57fd21313ebe569326787f0b154e305842d1
# Parent  5d21d80777a60ffc97f8318723db517dedb0b207
More check in rtdm mmap, also use kernel memory instead of virtual memory.

diff -r 5d21d80777a6 -r 2e2f57fd2131 master/rtdm.c
--- a/master/rtdm.c	Thu Sep 27 00:21:27 2018 +0200
+++ b/master/rtdm.c	Thu Sep 27 17:56:16 2018 +0200
@@ -216,8 +216,12 @@
  */
 int ec_rtdm_mmap(struct rtdm_fd *fd, struct vm_area_struct *vma)
 {
-    ec_ioctl_context_t *ctx = (ec_ioctl_context_t *) rtdm_fd_to_private(fd);
-	return rtdm_mmap_vmem(vma, (void *)ctx->process_data);
-}
-
-/****************************************************************************/
+	size_t len;
+    ec_ioctl_context_t *ctx = (ec_ioctl_context_t *) rtdm_fd_to_private(fd);
+	len = vma->vm_end - vma->vm_start;
+	if (ctx->process_data_size != len)
+		return -EINVAL;
+	return rtdm_mmap_kmem(vma, (void *)ctx->process_data);
+}
+
+/****************************************************************************/