diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2022-08-29 01:42:47 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2022-08-29 01:42:47 +0200 |
commit | 063f7462dac26487e38b126afcf80dad77da444c (patch) | |
tree | 8e515d0d1fef257d0a75120e0e0b607d5fb9fad3 | |
parent | cb033e6b0ca7b8873cd00687ffd1828038a595d3 (diff) | |
download | glibc-063f7462dac26487e38b126afcf80dad77da444c.zip glibc-063f7462dac26487e38b126afcf80dad77da444c.tar.gz glibc-063f7462dac26487e38b126afcf80dad77da444c.tar.bz2 |
hurd: Fix vm_size_t incoherencies
In gnumach, 3e1702a65fb3 ("add rpc_versions for vm types") changed the type
of vm_size_t, making it always a unsigned long. This made it incompatible on
x86 with size_t. Even if we may want to revert it to unsigned int, it's
better to fix the types of parameters according to the .defs files.
-rw-r--r-- | hurd/fd-write.c | 2 | ||||
-rw-r--r-- | hurd/fopenport.c | 2 | ||||
-rw-r--r-- | hurd/get-host.c | 3 | ||||
-rw-r--r-- | hurd/hurdioctl.c | 2 | ||||
-rw-r--r-- | hurd/set-host.c | 2 | ||||
-rw-r--r-- | hurd/vpprintf.c | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/dl-sysdep.c | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/ptrace.c | 5 | ||||
-rw-r--r-- | sysdeps/mach/hurd/send.c | 2 | ||||
-rw-r--r-- | sysdeps/mach/hurd/sendfile64.c | 2 | ||||
-rw-r--r-- | sysdeps/mach/hurd/sendmsg.c | 2 | ||||
-rw-r--r-- | sysdeps/mach/hurd/sendto.c | 2 |
12 files changed, 18 insertions, 14 deletions
diff --git a/hurd/fd-write.c b/hurd/fd-write.c index a18e76b..28be1ba 100644 --- a/hurd/fd-write.c +++ b/hurd/fd-write.c @@ -26,7 +26,7 @@ _hurd_fd_write (struct hurd_fd *fd, const void *buf, size_t *nbytes, loff_t offset) { error_t err; - mach_msg_type_number_t wrote; + vm_size_t wrote; error_t writefd (io_t port) { diff --git a/hurd/fopenport.c b/hurd/fopenport.c index 293c902..5bc01fc 100644 --- a/hurd/fopenport.c +++ b/hurd/fopenport.c @@ -48,7 +48,7 @@ readio (void *cookie, char *buf, size_t n) static ssize_t writeio (void *cookie, const char *buf, size_t n) { - mach_msg_type_number_t wrote; + vm_size_t wrote; error_t err; if (err = __io_write ((io_t) cookie, buf, n, -1, &wrote)) diff --git a/hurd/get-host.c b/hurd/get-host.c index bdaf86b..a21aa15 100644 --- a/hurd/get-host.c +++ b/hurd/get-host.c @@ -27,7 +27,8 @@ _hurd_get_host_config (const char *item, char *buf, size_t buflen) { error_t err; char *data; - mach_msg_type_number_t nread, more; + mach_msg_type_number_t nread; + vm_size_t more; file_t config; err = __hurd_file_name_lookup (&_hurd_ports_use, &__getdport, 0, diff --git a/hurd/hurdioctl.c b/hurd/hurdioctl.c index fce487c..526a74a 100644 --- a/hurd/hurdioctl.c +++ b/hurd/hurdioctl.c @@ -70,7 +70,7 @@ fioctl (int fd, case FIONREAD: { - mach_msg_type_number_t navail; + vm_size_t navail; err = HURD_DPORT_USE (fd, __io_readable (port, &navail)); if (!err) *arg = (int) navail; diff --git a/hurd/set-host.c b/hurd/set-host.c index 16d1d8d..afa8f62 100644 --- a/hurd/set-host.c +++ b/hurd/set-host.c @@ -24,7 +24,7 @@ ssize_t _hurd_set_host_config (const char *item, const char *value, size_t valuelen) { error_t err; - mach_msg_type_number_t nwrote; + vm_size_t nwrote; file_t new, dir; char *name; diff --git a/hurd/vpprintf.c b/hurd/vpprintf.c index 6745039..9ba3995 100644 --- a/hurd/vpprintf.c +++ b/hurd/vpprintf.c @@ -25,8 +25,8 @@ static ssize_t do_write (void *cookie, const char *buf, size_t n) { - error_t error = __io_write ((io_t) cookie, buf, n, -1, - (mach_msg_type_number_t *) &n); + vm_size_t amount = n; + error_t error = __io_write ((io_t) cookie, buf, n, -1, &amount); if (error) return __hurd_fail (error); return n; diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c index f23fdee..2f022ee 100644 --- a/sysdeps/mach/hurd/dl-sysdep.c +++ b/sysdeps/mach/hurd/dl-sysdep.c @@ -382,7 +382,7 @@ __ssize_t weak_function __write (int fd, const void *buf, size_t nbytes) { error_t err; - mach_msg_type_number_t nwrote; + vm_size_t nwrote; assert (fd < _hurd_init_dtablesize); @@ -415,7 +415,7 @@ __writev (int fd, const struct iovec *iov, int niov) { char buf[total], *bufp = buf; error_t err; - mach_msg_type_number_t nwrote; + vm_size_t nwrote; for (i = 0; i < niov; ++i) bufp = (memcpy (bufp, iov[i].iov_base, iov[i].iov_len) diff --git a/sysdeps/mach/hurd/ptrace.c b/sysdeps/mach/hurd/ptrace.c index 9a32cd9..a043f32 100644 --- a/sysdeps/mach/hurd/ptrace.c +++ b/sysdeps/mach/hurd/ptrace.c @@ -47,8 +47,11 @@ ptrace (enum __ptrace_request request, ... ) { /* Read the pages containing the addressed range. */ error_t err; + mach_msg_type_number_t nread; *size = round_page (addr + data) - trunc_page (addr); - err = __vm_read (task, trunc_page (addr), *size, ourpage, size); + err = __vm_read (task, trunc_page (addr), *size, ourpage, &nread); + if (!err) + *size = nread; return err; } diff --git a/sysdeps/mach/hurd/send.c b/sysdeps/mach/hurd/send.c index c0826f1..4df38e2 100644 --- a/sysdeps/mach/hurd/send.c +++ b/sysdeps/mach/hurd/send.c @@ -27,7 +27,7 @@ ssize_t __send (int fd, const void *buf, size_t n, int flags) { error_t err; - size_t wrote; + vm_size_t wrote; int cancel_oldtype; cancel_oldtype = LIBC_CANCEL_ASYNC(); diff --git a/sysdeps/mach/hurd/sendfile64.c b/sysdeps/mach/hurd/sendfile64.c index 77c3a2f..8b24f21 100644 --- a/sysdeps/mach/hurd/sendfile64.c +++ b/sysdeps/mach/hurd/sendfile64.c @@ -42,7 +42,7 @@ __sendfile64 (int out_fd, int in_fd, off64_t *offset, size_t count) count)); if (err == 0) { - size_t nwrote; + vm_size_t nwrote; if (datalen == 0) return 0; err = HURD_DPORT_USE (out_fd, __io_write (port, data, datalen, diff --git a/sysdeps/mach/hurd/sendmsg.c b/sysdeps/mach/hurd/sendmsg.c index 56bcee7..5ca01fc 100644 --- a/sysdeps/mach/hurd/sendmsg.c +++ b/sysdeps/mach/hurd/sendmsg.c @@ -47,7 +47,7 @@ __libc_sendmsg (int fd, const struct msghdr *message, int flags) } data = { .ptr = NULL }; char data_buf[2048]; mach_msg_type_number_t len; - mach_msg_type_number_t amount; + vm_size_t amount; int dealloc = 0; int socketrpc = 0; int i; diff --git a/sysdeps/mach/hurd/sendto.c b/sysdeps/mach/hurd/sendto.c index e55469f..36a76bc 100644 --- a/sysdeps/mach/hurd/sendto.c +++ b/sysdeps/mach/hurd/sendto.c @@ -37,7 +37,7 @@ __sendto (int fd, { addr_port_t aport = MACH_PORT_NULL; error_t err; - size_t wrote; + vm_size_t wrote; /* Get an address port for the desired destination address. */ error_t create_address_port (io_t port, |