diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-05-15 08:38:59 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-05-15 08:38:59 +0000 |
commit | a2a1c2411a4bae2e1428ca2404458c978f8f5920 (patch) | |
tree | f294a84d5a51b3911f8166fa548b7ffbef081c2a | |
parent | 6f17b7c2e225eacfeba20ba18e3842a1ecf90122 (diff) | |
download | zsh-a2a1c2411a4bae2e1428ca2404458c978f8f5920.tar.gz zsh-a2a1c2411a4bae2e1428ca2404458c978f8f5920.tar.xz zsh-a2a1c2411a4bae2e1428ca2404458c978f8f5920.zip |
calculate the length of the region to map (for mapped zwc files) correctly, including the offset-page-boundary-adjustment (14346)
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Src/parse.c | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 3e145bd2d..fc4f17659 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-05-15 Sven Wischnowsky <wischnow@zsh.org> + + * 14346: Src/parse.c: calculate the length of the region to map + (for mapped zwc files) correctly, including the + offset-page-boundary-adjustment + 2001-05-15 Clint Adams <clint@zsh.org> * 14341: Completion/Unix/Command/.distfiles, diff --git a/Src/parse.c b/Src/parse.c index cf3fe237a..78b14fb41 100644 --- a/Src/parse.c +++ b/Src/parse.c @@ -2782,7 +2782,7 @@ load_dump_file(char *dump, struct stat *sbuf, int other, int len) { FuncDump d; Wordcode addr; - int fd, off; + int fd, off, mlen; if (other) { static size_t pgsz = 0; @@ -2802,15 +2802,17 @@ load_dump_file(char *dump, struct stat *sbuf, int other, int len) pgsz--; } off = len & ~pgsz; - } else + mlen = len + (len - off); + } else { off = 0; - + mlen = len; + } if ((fd = open(dump, O_RDONLY)) < 0) return; fd = movefd(fd); - if ((addr = (Wordcode) mmap(NULL, len, PROT_READ, MAP_SHARED, fd, off)) == + if ((addr = (Wordcode) mmap(NULL, mlen, PROT_READ, MAP_SHARED, fd, off)) == ((Wordcode) -1)) { close(fd); return; |