소스 검색

Update userspace to have proper protection values for mmap and send the proper flags to the callback function.

Godzil 4 년 전
부모
커밋
57ae74c803
2개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 1
      include/fusd.h
  2. 2 2
      libfusd/libfusd.c

+ 1 - 1
include/fusd.h

@@ -81,7 +81,7 @@ struct fusd_file_operations {
   int (*ioctl) (struct fusd_file_info *file, int request, void *data);
   int (*poll_diff) (struct fusd_file_info *file, unsigned int cached_state);
   int (*unblock) (struct fusd_file_info *file);
-  int (*mmap) (struct fusd_file_info *file, int offset, size_t length, int flags, void** addr, size_t* out_length);
+  int (*mmap) (struct fusd_file_info *file, int offset, size_t length, int prot, int flags, void** addr, size_t* out_length);
 } fusd_file_operations_t;
 
 

+ 2 - 2
libfusd/libfusd.c

@@ -503,8 +503,8 @@ static int fusd_dispatch_one(int fd, fusd_file_operations_t *fops)
     //printf("FUSD_MMAP\n");
     if (fops && fops->mmap)
     {
-      user_retval = fops->mmap(file, msg->parm.fops_msg.offset, msg->parm.fops_msg.length, msg->parm.fops_msg.flags,
-                               &msg->parm.fops_msg.arg.ptr_arg, &msg->parm.fops_msg.length);
+      user_retval = fops->mmap(file, msg->parm.fops_msg.mmoffset, msg->parm.fops_msg.length, msg->parm.fops_msg.mmprot,
+                               msg->parm.fops_msg.mmflags, &msg->parm.fops_msg.arg.ptr_arg, &msg->parm.fops_msg.length);
     }
     break;