This is an automated email from the ASF dual-hosted git repository.

dingyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-sgx-sdk.git


The following commit(s) were added to refs/heads/master by this push:
     new 09baaa8  Repair "write_vectored "caused segment error
     new 8f065be  Merge pull request #257 from Zha0Chan/master
09baaa8 is described below

commit 09baaa8391c63d1c4bebf58a43c911ff25e8f129
Author: Zha0Chan <[email protected]>
AuthorDate: Mon Jul 6 15:56:08 2020 +0800

    Repair "write_vectored "caused segment error
---
 sgx_libc/src/linux/x86_64/ocall.rs | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/sgx_libc/src/linux/x86_64/ocall.rs 
b/sgx_libc/src/linux/x86_64/ocall.rs
index 973d836..5118984 100644
--- a/sgx_libc/src/linux/x86_64/ocall.rs
+++ b/sgx_libc/src/linux/x86_64/ocall.rs
@@ -1360,7 +1360,7 @@ pub unsafe fn read(fd: c_int, buf: *mut c_void, count: 
size_t) -> ssize_t {
     }
 
     if result != -1 {
-        ptr::copy_nonoverlapping(tmp_buf as *mut u8, buf as *mut u8, count);
+        ptr::copy_nonoverlapping(tmp_buf as *const u8, buf as *mut u8, count);
     }
     if count <= MAX_OCALL_ALLOC_SIZE {
         sgx_ocfree();
@@ -1411,7 +1411,7 @@ pub unsafe fn pread64(fd: c_int, buf: *mut c_void, count: 
size_t, offset: off64_
     }
 
     if result != -1 {
-        ptr::copy_nonoverlapping(tmp_buf as *mut u8, buf as *mut u8, count);
+        ptr::copy_nonoverlapping(tmp_buf as *const u8, buf as *mut u8, count);
     }
     if count <= MAX_OCALL_ALLOC_SIZE {
         sgx_ocfree();
@@ -1477,7 +1477,7 @@ pub unsafe fn readv(fd: c_int, iov: *const iovec, iovcnt: 
c_int) -> ssize_t {
 
     if result != -1 {
         for i in 0..v.len() {
-            ptr::copy_nonoverlapping(tmpiovec[i].iov_base as *mut u8, 
v[i].iov_base as *mut u8, v[i].iov_len as usize);
+            ptr::copy_nonoverlapping(tmpiovec[i].iov_base as *const u8, 
v[i].iov_base as *mut u8, v[i].iov_len as usize);
         }
     }
 
@@ -1542,7 +1542,7 @@ pub unsafe fn preadv64(fd: c_int, iov: *const iovec, 
iovcnt: c_int, offset: off6
 
     if result != -1 {
         for i in 0..v.len() {
-            ptr::copy_nonoverlapping(tmpiovec[i].iov_base as *mut u8, 
v[i].iov_base as *mut u8, v[i].iov_len as usize);
+            ptr::copy_nonoverlapping(tmpiovec[i].iov_base as *const u8, 
v[i].iov_base as *mut u8, v[i].iov_len as usize);
         }
     }
 
@@ -1680,7 +1680,7 @@ pub unsafe fn writev(fd: c_int, iov: *const iovec, 
iovcnt: c_int) -> ssize_t {
     for io in v {
         let tmpiov = iovec{iov_base: ptr as *mut c_void,
                            iov_len: io.iov_len};
-        ptr::copy_nonoverlapping(tmpiov.iov_base as *mut u8, io.iov_base as 
*mut u8, io.iov_len as usize);
+        ptr::copy_nonoverlapping(io.iov_base as *const u8, tmpiov.iov_base as 
*mut u8, io.iov_len as usize);
         tmpiovec.push(tmpiov);
         ptr = ptr.add(io.iov_len as usize);
     }
@@ -1739,7 +1739,7 @@ pub unsafe fn pwritev64(fd: c_int, iov: *const iovec, 
iovcnt: c_int, offset: off
     for io in v {
         let tmpiov = iovec{iov_base: ptr as *mut c_void,
                            iov_len: io.iov_len};
-        ptr::copy_nonoverlapping(tmpiov.iov_base as *mut u8, io.iov_base as 
*mut u8, io.iov_len as usize);
+        ptr::copy_nonoverlapping(io.iov_base as *const u8, tmpiov.iov_base as 
*mut u8, io.iov_len as usize);
         tmpiovec.push(tmpiov);
         ptr = ptr.add(io.iov_len as usize);
     }
@@ -2187,7 +2187,7 @@ pub unsafe fn sendmsg(sockfd: c_int, msg: *const msghdr, 
flags: c_int) -> ssize_
     if !mhdr.msg_name.is_null() && mhdr.msg_namelen > 0 {
         tmpmsg.msg_name = ptr as *mut c_void;
         tmpmsg.msg_namelen = mhdr.msg_namelen;
-        ptr::copy_nonoverlapping(mhdr.msg_name as *mut u8, tmpmsg.msg_name as 
*mut u8, mhdr.msg_namelen as usize);
+        ptr::copy_nonoverlapping(mhdr.msg_name as *const u8, tmpmsg.msg_name 
as *mut u8, mhdr.msg_namelen as usize);
         ptr = ptr.add(mhdr.msg_namelen as usize);
     }
 
@@ -2199,7 +2199,7 @@ pub unsafe fn sendmsg(sockfd: c_int, msg: *const msghdr, 
flags: c_int) -> ssize_
         for i in 0..v.len() {
             tmpiov[i].iov_base = ptr as *mut c_void;
             tmpiov[i].iov_len = v[i].iov_len;
-            ptr::copy_nonoverlapping(v[i].iov_base as *mut u8, 
tmpiov[i].iov_base as *mut u8, v[i].iov_len as usize);
+            ptr::copy_nonoverlapping(v[i].iov_base as *const u8, 
tmpiov[i].iov_base as *mut u8, v[i].iov_len as usize);
             ptr = ptr.add(v[i].iov_len as usize);
         }
     }
@@ -2207,7 +2207,7 @@ pub unsafe fn sendmsg(sockfd: c_int, msg: *const msghdr, 
flags: c_int) -> ssize_
     if !mhdr.msg_control.is_null() &&  mhdr.msg_controllen > 0 {
         tmpmsg.msg_control = ptr as *mut c_void;
         tmpmsg.msg_controllen = mhdr.msg_controllen;
-        ptr::copy_nonoverlapping(mhdr.msg_control as *mut u8, 
tmpmsg.msg_control as *mut u8, mhdr.msg_controllen as usize);
+        ptr::copy_nonoverlapping(mhdr.msg_control as *const u8, 
tmpmsg.msg_control as *mut u8, mhdr.msg_controllen as usize);
     }
 
     let status = u_sendmsg_ocall(&mut result as *mut ssize_t,
@@ -2270,7 +2270,7 @@ pub unsafe fn recv(sockfd: c_int, buf: *mut c_void, len: 
size_t, flags: c_int) -
     }
 
     if result != -1 {
-        ptr::copy_nonoverlapping(tmp_buf as *mut u8, buf as *mut u8, len);
+        ptr::copy_nonoverlapping(tmp_buf as *const u8, buf as *mut u8, len);
     }
     if len <= MAX_OCALL_ALLOC_SIZE {
         sgx_ocfree();
@@ -2331,7 +2331,7 @@ pub unsafe fn recvfrom(sockfd: c_int,
     }
 
     if result != -1 {
-        ptr::copy_nonoverlapping(tmp_buf as *mut u8, buf as *mut u8, len);
+        ptr::copy_nonoverlapping(tmp_buf as *const u8, buf as *mut u8, len);
     }
     if len <= MAX_OCALL_ALLOC_SIZE {
         sgx_ocfree();
@@ -2395,7 +2395,7 @@ pub unsafe fn recvmsg(sockfd: c_int, msg: *mut msghdr, 
flags: c_int) -> ssize_t
     if !mhdr.msg_name.is_null() && mhdr.msg_namelen > 0 {
         tmpmsg.msg_name = ptr as *mut c_void;
         tmpmsg.msg_namelen = mhdr.msg_namelen;
-        ptr::copy_nonoverlapping(mhdr.msg_name as *mut u8, tmpmsg.msg_name as 
*mut u8, mhdr.msg_namelen as usize);
+        ptr::copy_nonoverlapping(mhdr.msg_name as *const u8, tmpmsg.msg_name 
as *mut u8, mhdr.msg_namelen as usize);
         ptr = ptr.add(mhdr.msg_namelen as usize);
     }
 
@@ -2414,7 +2414,7 @@ pub unsafe fn recvmsg(sockfd: c_int, msg: *mut msghdr, 
flags: c_int) -> ssize_t
     if !mhdr.msg_control.is_null() &&  mhdr.msg_controllen > 0 {
         tmpmsg.msg_control = ptr as *mut c_void;
         tmpmsg.msg_controllen = mhdr.msg_controllen;
-        ptr::copy_nonoverlapping(mhdr.msg_control as *mut u8, 
tmpmsg.msg_control as *mut u8, mhdr.msg_controllen as usize);
+        ptr::copy_nonoverlapping(mhdr.msg_control as *const u8, 
tmpmsg.msg_control as *mut u8, mhdr.msg_controllen as usize);
     }
 
     let status = u_recvmsg_ocall(&mut result as *mut ssize_t,
@@ -2443,13 +2443,13 @@ pub unsafe fn recvmsg(sockfd: c_int, msg: *mut msghdr, 
flags: c_int) -> ssize_t
 
         let v = slice::from_raw_parts(mhdr.msg_iov, mhdr.msg_iovlen as usize);
         for i in 0..v.len() {
-            ptr::copy_nonoverlapping(tmpiov[i].iov_base as *mut u8, 
v[i].iov_base as *mut u8, v[i].iov_len as usize);
+            ptr::copy_nonoverlapping(tmpiov[i].iov_base as *const u8, 
v[i].iov_base as *mut u8, v[i].iov_len as usize);
             ptr = ptr.add(v[i].iov_len as usize);
         }
     }
 
     if !mhdr.msg_control.is_null() &&  mhdr.msg_controllen > 0 {
-        ptr::copy_nonoverlapping(tmpmsg.msg_control as *mut u8, 
mhdr.msg_control as *mut u8, mhdr.msg_controllen as usize);
+        ptr::copy_nonoverlapping(tmpmsg.msg_control as *const u8, 
mhdr.msg_control as *mut u8, mhdr.msg_controllen as usize);
     }
 
     free(hdrbase as *mut c_void);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to