aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--hurd/fd-read.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 88343cf661..daccb37cd5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-07-22 Roland McGrath <roland@frob.com>
+
+ * hurd/fd-read.c (_hurd_fd_read): Fix last change.
+
2008-07-21 Roland McGrath <roland@frob.com>
* hurd/fd-read.c (_hurd_fd_read): Return EGRATUITOUS if the server
diff --git a/hurd/fd-read.c b/hurd/fd-read.c
index d673c78e03..38706524f0 100644
--- a/hurd/fd-read.c
+++ b/hurd/fd-read.c
@@ -42,7 +42,10 @@ _hurd_fd_read (struct hurd_fd *fd, void *buf, size_t *nbytes, loff_t offset)
if (data != buf)
{
if (nread > *nbytes) /* Sanity check for bogus server. */
- return EGRATUITOUS;
+ {
+ __vm_deallocate (__mach_task_self (), (vm_address_t) data, nread);
+ return EGRATUITOUS;
+ }
memcpy (buf, data, nread);
__vm_deallocate (__mach_task_self (), (vm_address_t) data, nread);
}