diff options
| -rw-r--r-- | sys/src/9/port/fault.c | 8 |
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); |
