summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/port/fault.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/9/port/fault.c b/sys/src/9/port/fault.c
index 1919c2890..3d4530401 100644
--- a/sys/src/9/port/fault.c
+++ b/sys/src/9/port/fault.c
@@ -211,9 +211,11 @@ retry:
}
c = s->image->c;
- ask = s->flen-soff;
- if(ask > BY2PG)
- ask = BY2PG;
+ ask = BY2PG;
+ if(soff >= s->flen)
+ ask = 0;
+ else if((soff+ask) > s->flen)
+ ask = s->flen-soff;
}
else { /* from a swap image */
daddr = swapaddr(loadrec);